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 { IPmProjectRepository } from '../../ports/output/repositories/pm-project-repository.interface.js';
export interface StateBreakdownItem {
    stateId: string;
    stateName: string;
    stateGroup: string;
    stateColor: string;
    count: number;
}
export interface PriorityBreakdownItem {
    priority: string;
    count: number;
}
export interface ProjectBreakdownData {
    projectId: string;
    projectName: string;
    totalItems: number;
    byState: StateBreakdownItem[];
    byPriority: PriorityBreakdownItem[];
    byStateGroup: {
        group: string;
        count: number;
    }[];
}
export type GetProjectBreakdownResult = {
    ok: true;
    data: ProjectBreakdownData;
} | {
    ok: false;
    error: string;
};
export declare class GetProjectBreakdownUseCase {
    private readonly projectRepo;
    private readonly workItemRepo;
    private readonly stateRepo;
    constructor(projectRepo: IPmProjectRepository, workItemRepo: IWorkItemRepository, stateRepo: IWorkItemStateRepository);
    execute(projectId: string): Promise<GetProjectBreakdownResult>;
}
//# sourceMappingURL=get-project-breakdown.use-case.d.ts.map