/**
 * 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<string, string[]>;
    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<string, Set<string>>;
/**
 * 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<string, Set<string>>): 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