import type { IPmProjectRepository } from '../../ports/output/repositories/pm-project-repository.interface.js';
import type { IWorkItemRepository } from '../../ports/output/repositories/work-item-repository.interface.js';
import type { IWorkItemStateRepository } from '../../ports/output/repositories/work-item-state-repository.interface.js';
import type { IActivityLogRepository } from '../../ports/output/repositories/activity-log-repository.interface.js';
export type ImportFieldName = 'title' | 'description' | 'priority' | 'state' | 'estimateValue' | 'dueDate' | 'startDate';
export type CsvFieldMapping = Record<number, ImportFieldName>;
export interface ImportWorkItemsCsvInput {
    projectId: string;
    csvContent: string;
    fieldMapping: CsvFieldMapping;
    skipHeaderRow?: boolean;
}
export interface CsvImportError {
    rowNumber: number;
    error: string;
    value?: string;
}
export type ImportWorkItemsCsvResult = {
    ok: true;
    createdCount: number;
    errors: CsvImportError[];
} | {
    ok: false;
    error: string;
};
export declare class ImportWorkItemsCsvUseCase {
    private readonly projectRepo;
    private readonly workItemRepo;
    private readonly stateRepo;
    private readonly activityRepo;
    constructor(projectRepo: IPmProjectRepository, workItemRepo: IWorkItemRepository, stateRepo: IWorkItemStateRepository, activityRepo: IActivityLogRepository);
    execute(input: ImportWorkItemsCsvInput): Promise<ImportWorkItemsCsvResult>;
    private mapRow;
    private resolveStateId;
    private parseDate;
}
//# sourceMappingURL=import-work-items-csv.use-case.d.ts.map