import type { IWorkItemRepository } from '../../ports/output/repositories/work-item-repository.interface.js';
import type { ICycleRepository } from '../../ports/output/repositories/cycle-repository.interface.js';
import type { IWorkItemStateRepository } from '../../ports/output/repositories/work-item-state-repository.interface.js';
import type { ILabelRepository } from '../../ports/output/repositories/label-repository.interface.js';
export type ExportColumn = 'identifier' | 'title' | 'description' | 'state' | 'priority' | 'labels' | 'dueDate' | 'startDate' | 'estimate' | 'assignees';
export interface ExportWorkItemsCsvInput {
    projectId: string;
    cycleId?: string;
    columns: ExportColumn[];
}
export type ExportWorkItemsCsvResult = {
    ok: true;
    csv: string;
    itemCount: number;
} | {
    ok: false;
    error: string;
};
export declare class ExportWorkItemsCsvUseCase {
    private readonly workItemRepo;
    private readonly cycleRepo;
    private readonly stateRepo;
    private readonly labelRepo;
    constructor(workItemRepo: IWorkItemRepository, cycleRepo: ICycleRepository, stateRepo: IWorkItemStateRepository, labelRepo: ILabelRepository);
    execute(input: ExportWorkItemsCsvInput): Promise<ExportWorkItemsCsvResult>;
    private buildStateMap;
    private buildLabelMap;
    private resolveLabels;
    private buildRow;
}
//# sourceMappingURL=export-work-items-csv.use-case.d.ts.map