/** * Graph Sorter * * Performs topological sorting on the dependency graph to: * 1. Detect circular dependencies (fails if cycle found) * 2. Assign level numbers to each project (level 0 = no deps, level 1 = depends on level 0, etc.) * 3. Group projects into layers for deterministic ordering */ /** * Graph entry with level metadata */ export interface GraphEntry { level: number; dependsOn: string[]; } /** * Enhanced graph format with level information */ export type EnhancedGraph = Record; /** * Compute topological layers for dependency graph using Kahn's algorithm * * Projects are grouped into layers where each layer only depends on previous layers. * Throws an error if a circular dependency is detected. * * @param graph - Dependency graph { project: [deps] } * @returns Array of layers, each containing sorted project names */ export declare function computeTopologicalLayers(graph: Record): string[][]; /** * Sort graph in topological order with alphabetical sorting within layers * Returns enhanced format with level metadata * * @param graph - Unsorted dependency graph { project: [deps] } * @returns Sorted graph with level metadata { project: { level: number, dependsOn: [deps] } } */ export declare function sortGraphTopologically(graph: Record): EnhancedGraph;