import { DataSource } from 'typeorm';
export interface ImportError {
    line: number;
    reason: string;
}
export interface ImportReport {
    success: number;
    created: number;
    updated: number;
    errors: ImportError[];
    total: number;
}
export interface JobTitleSummary {
    name: string;
    occurrences: number;
}
export interface ExistingMatch {
    line: number;
    workerId: number;
    matchedBy: 'cnss' | 'name';
    firstName: string;
    lastName: string;
}
export interface ImportAnalysis {
    totalRows: number;
    validRows: number;
    errors: ImportError[];
    missingDepartments: JobTitleSummary[];
    existingMatches: ExistingMatch[];
}
export type ImportMode = 'create-only' | 'upsert';
export interface CommitResolution {
    importMode?: ImportMode;
}
export declare class WorkersImportService {
    private readonly dataSource;
    constructor(dataSource: DataSource);
    getTemplate(): Buffer;
    analyze(companyId: number, fileBuffer: Buffer, jobTitleId: number): Promise<ImportAnalysis>;
    commit(companyId: number, fileBuffer: Buffer, jobTitleId: number, siteIds: number[], resolution: CommitResolution, createdBy: number): Promise<ImportReport>;
    private parseRows;
    private decode;
    private assertActiveJobTitle;
    private assertActiveSites;
    private findOrCreateDepartment;
}
