/** * Dependency graph management for task scheduling */ import { Task } from "../utils/types.js"; import { ILogger } from "../core/logger.js"; export interface DependencyNode { taskId: string; dependencies: Set; dependents: Set; status: "pending" | "ready" | "running" | "completed" | "failed"; } export interface DependencyPath { from: string; to: string; path: string[]; } /** * Manages task dependencies and determines execution order */ export declare class DependencyGraph { private logger; private nodes; private completedTasks; constructor(logger: ILogger); /** * Add a task to the dependency graph */ addTask(task: Task): void; /** * Remove a task from the dependency graph */ removeTask(taskId: string): void; /** * Mark a task as completed */ markCompleted(taskId: string): string[]; /** * Mark a task as failed */ markFailed(taskId: string): string[]; /** * Check if a task is ready to run */ isTaskReady(taskId: string): boolean; /** * Get all ready tasks */ getReadyTasks(): string[]; /** * Get all dependents of a task (recursive) */ getAllDependents(taskId: string): string[]; /** * Detect circular dependencies */ detectCycles(): string[][]; /** * Get topological sort of tasks */ topologicalSort(): string[] | null; /** * Find critical path (longest path through the graph) */ findCriticalPath(): DependencyPath | null; /** * Find path between two tasks */ private findPath; /** * Get graph statistics */ getStats(): Record; /** * Export graph to DOT format for visualization */ toDot(): string; } //# sourceMappingURL=dependency-graph.d.ts.map