import type { Cycle, CycleStatus } from '../../../domain/generated/output.js';
import type { ICycleRepository } from '../../ports/output/repositories/cycle-repository.interface.js';
import type { IPmProjectRepository } from '../../ports/output/repositories/pm-project-repository.interface.js';
export interface CreateCycleInput {
    projectId: string;
    name: string;
    description?: string;
    status?: CycleStatus;
    startDate?: Date;
    endDate?: Date;
}
export type CreateCycleResult = {
    ok: true;
    cycle: Cycle;
} | {
    ok: false;
    error: string;
};
export declare class CreateCycleUseCase {
    private readonly cycleRepo;
    private readonly projectRepo;
    constructor(cycleRepo: ICycleRepository, projectRepo: IPmProjectRepository);
    execute(input: CreateCycleInput): Promise<CreateCycleResult>;
}
//# sourceMappingURL=create-cycle.use-case.d.ts.map