import type { Request, Response } from 'express';
import type { AuthenticatedUser } from '../../common/interfaces/authenticated-user.interface';
import { AuditService } from '../audit/audit.service';
import { AssignSitesDto } from './dto/assign-sites.dto';
import { BulkAssignSitesDto } from './dto/bulk-assign-sites.dto';
import { BulkDeactivateDto } from './dto/bulk-deactivate.dto';
import { BulkUpdateJobTitleDto } from './dto/bulk-update-job-title.dto';
import { CreateWorkerDto } from './dto/create-worker.dto';
import { UpdateWorkerDto } from './dto/update-worker.dto';
import { WorkersQueryDto } from './dto/workers-query.dto';
import { WorkersImportService } from './workers-import.service';
import { WorkersService } from './workers.service';
export declare class WorkersController {
    private readonly workersService;
    private readonly workersImportService;
    private readonly auditService;
    constructor(workersService: WorkersService, workersImportService: WorkersImportService, auditService: AuditService);
    list(companyId: number, query: WorkersQueryDto, user: AuthenticatedUser): Promise<import("./entities/worker.entity").Worker[]>;
    getOne(companyId: number, id: number): Promise<{
        siteIds: number[];
        id: number;
        companyId: number;
        departmentId: number | null;
        jobTitleId: number | null;
        firstName: string;
        lastName: string;
        cnssNumber: string | null;
        dailyBase: string | null;
        technicalAllowance: string | null;
        isActive: boolean;
        createdBy: number | null;
        createdAt: Date;
        updatedAt: Date;
    }>;
    create(companyId: number, dto: CreateWorkerDto, user: AuthenticatedUser, req: Request): Promise<import("./entities/worker.entity").Worker>;
    update(companyId: number, id: number, dto: UpdateWorkerDto, user: AuthenticatedUser, req: Request): Promise<import("./entities/worker.entity").Worker>;
    deactivate(companyId: number, id: number, user: AuthenticatedUser, req: Request): Promise<void>;
    bulkUpdateJobTitle(companyId: number, dto: BulkUpdateJobTitleDto, user: AuthenticatedUser, req: Request): Promise<{
        updated: number;
    }>;
    bulkAssignSites(companyId: number, dto: BulkAssignSitesDto, user: AuthenticatedUser, req: Request): Promise<{
        updated: number;
    }>;
    bulkDeactivate(companyId: number, dto: BulkDeactivateDto, user: AuthenticatedUser, req: Request): Promise<{
        updated: number;
    }>;
    getImportTemplate(res: Response): void;
    analyzeImport(companyId: number, file: Express.Multer.File | undefined, jobTitleIdRaw: string | undefined): Promise<import("./workers-import.service").ImportAnalysis>;
    commitImport(companyId: number, file: Express.Multer.File | undefined, jobTitleIdRaw: string | undefined, siteIdsRaw: string | undefined, resolutionRaw: string | undefined, user: AuthenticatedUser, req: Request): Promise<import("./workers-import.service").ImportReport>;
    private parseJobTitleId;
    private parseSiteIds;
    private parseResolutionPayload;
    listSites(id: number): Promise<number[]>;
    assignSites(id: number, dto: AssignSitesDto, user: AuthenticatedUser, req: Request): Promise<number[]>;
}
