import { type TaskStore } from '../tasking/index.js'; import type { TaskGraph } from '../types/task-graph.js'; import type { PhaseGraph, PhaseTemplate } from './types.js'; export interface PhaseGraphBuilderOptions { title: string; description?: string | undefined; /** Ordered phase templates. */ phases: PhaseTemplate[]; /** Autonomous mode. */ autonomous?: boolean | undefined; /** Stop on failure. */ stopOnFailure?: boolean | undefined; /** Optional external TaskStore. */ externalTaskStore?: TaskStore | undefined; } /** * PhaseGraphBuilder - builds project phases and a task graph for each phase. * * Usage: * const builder = new PhaseGraphBuilder({ * title: 'Auth System Refactor', * phases: [ * { name: 'Discovery', description: '...', priority: 'high', estimateHours: 2, parallelizable: false }, * { name: 'Design', description: '...', priority: 'critical', estimateHours: 4, parallelizable: false }, * { name: 'Implementation', description: '...', priority: 'critical', estimateHours: 12, parallelizable: false }, * { name: 'Testing', description: '...', priority: 'high', estimateHours: 6, parallelizable: true }, * { name: 'Deployment', description: '...', priority: 'medium', estimateHours: 2, parallelizable: false }, * ] * }); * const graph = await builder.build(); */ export declare class PhaseGraphBuilder { private readonly opts; constructor(opts: PhaseGraphBuilderOptions); build(): Promise; /** * Create phases from an existing TaskGraph. * Groups tasks into phases using topological sort so dependencies * stay in the same phase wherever possible. */ static fromTaskGraph(taskGraph: TaskGraph, options: Omit & { /** Number of tasks per phase. Defaults to 5. */ tasksPerPhase?: number | undefined; }): Promise; } //# sourceMappingURL=phase-graph-builder.d.ts.map