/** * Dependency analysis for orchestration. * * Provides dependency graph building, circular dependency detection (DFS), * and missing dependency identification for epic task hierarchies. * * @task T5702 */ import type { Task } from '@cleocode/contracts'; /** A circular dependency cycle found via DFS traversal. */ export type CircularDependency = string[]; /** A missing dependency reference within an epic. */ export interface MissingDependency { taskId: string; missingDep: string; } /** Full dependency analysis result for an epic. */ export interface DependencyAnalysis { dependencyGraph: Record; circularDependencies: CircularDependency[]; missingDependencies: MissingDependency[]; } /** * Build a dependency graph for a set of tasks. * * Returns a Map from task ID to the set of task IDs it depends on. */ export declare function buildDependencyGraph(tasks: Task[]): Map>; /** * Detect circular dependencies using DFS traversal. * * @param tasks - The set of tasks to analyze * @param graph - Pre-built dependency graph (optional; built from tasks if not provided) * @returns Array of circular dependency cycles (each cycle is an array of task IDs) */ export declare function detectCircularDependencies(tasks: Task[], graph?: Map>): CircularDependency[]; /** * Find missing dependencies — deps that reference tasks outside the epic * that are not yet completed. * * @param children - Child tasks of the epic * @param allTasks - All tasks in the project (to check if deps are completed elsewhere) * @returns Array of missing dependency references */ export declare function findMissingDependencies(children: Task[], allTasks: Task[]): MissingDependency[]; /** * Perform full dependency analysis for an epic's children. * * Combines dependency graph building, circular detection, and missing dep * identification into a single analysis result. * * @param children - Child tasks of the epic * @param allTasks - All tasks in the project * @returns Complete dependency analysis */ export declare function analyzeDependencies(children: Task[], allTasks: Task[]): DependencyAnalysis; //# sourceMappingURL=analyze.d.ts.map