import type { PmModule, ModuleStatus } from '../../../domain/generated/output.js';
import type { IPmModuleRepository } from '../../ports/output/repositories/pm-module-repository.interface.js';
import type { IPmProjectRepository } from '../../ports/output/repositories/pm-project-repository.interface.js';
export interface CreateModuleInput {
    projectId: string;
    name: string;
    description?: string;
    status?: ModuleStatus;
    leadId?: string;
    startDate?: Date;
    endDate?: Date;
}
export type CreateModuleResult = {
    ok: true;
    module: PmModule;
} | {
    ok: false;
    error: string;
};
export declare class CreateModuleUseCase {
    private readonly moduleRepo;
    private readonly projectRepo;
    constructor(moduleRepo: IPmModuleRepository, projectRepo: IPmProjectRepository);
    execute(input: CreateModuleInput): Promise<CreateModuleResult>;
}
//# sourceMappingURL=create-module.use-case.d.ts.map