/** * Execution Planner * * Gera e valida planos de execução em formato YAML. */ import { ExecutionPlan, NormalizedInput, EpicMetadata, SharedContext } from '../../shared/types/index.js'; /** * Opções para criar plano */ export interface CreatePlanOptions { defaultMaxIterations?: number; globalTimeoutMinutes?: number; failFast?: boolean; autoCommit?: boolean; dryRun?: boolean; interactive?: boolean; finalValidationCommand?: string; } /** * Resultado da validação do plano */ export interface PlanValidationResult { valid: boolean; errors: string[]; warnings: string[]; } /** * Cria um plano de execução a partir de um input normalizado */ export declare function createPlan(input: NormalizedInput, options?: CreatePlanOptions): ExecutionPlan; /** * Valida um plano de execução */ export declare function validatePlan(plan: unknown): PlanValidationResult; /** * Exporta plano como YAML */ export declare function exportPlanYaml(plan: ExecutionPlan): string; /** * Importa plano de YAML */ export declare function importPlanYaml(yaml: string): ExecutionPlan; /** * Salva plano em arquivo */ export declare function savePlan(plan: ExecutionPlan, filePath: string): void; /** * Carrega plano de arquivo */ export declare function loadPlan(filePath: string): ExecutionPlan; /** * Estima tempo total de execução (em minutos) */ export declare function estimateExecutionTime(plan: ExecutionPlan): number; /** * Obtém resumo do plano */ export declare function getPlanSummary(plan: ExecutionPlan): { totalTasks: number; totalIterations: number; estimatedMinutes: number; hasTests: boolean; hasFinalValidation: boolean; }; /** * Opções para criar planos de épico */ export interface CreateEpicPlansOptions extends CreatePlanOptions { /** Se true, cria um único plano consolidado */ consolidate?: boolean; /** ID da story específica para gerar (se não informado, gera para todas) */ storyId?: string; } /** * Resultado da criação de planos de épico */ export interface EpicPlansResult { epicId: string; epicTitle: string; plans: ExecutionPlan[]; totalStories: number; totalTasks: number; } /** * Cria planos de execução a partir de um resultado de épico */ export declare function createPlansFromEpic(stories: NormalizedInput[], epicMetadata: EpicMetadata, _sharedContext: SharedContext, options?: CreateEpicPlansOptions): EpicPlansResult; /** * Cria um plano consolidado a partir de múltiplas stories */ export declare function createConsolidatedPlan(stories: NormalizedInput[], epicMetadata: EpicMetadata, options?: CreatePlanOptions): ExecutionPlan; /** * Obtém resumo de planos de épico */ export declare function getEpicPlansSummary(result: EpicPlansResult): { epicId: string; epicTitle: string; storiesCount: number; plansCount: number; totalTasks: number; totalIterations: number; estimatedMinutes: number; }; //# sourceMappingURL=execution-planner.d.ts.map