/** * Dependency graph manager * * Manages dependency graph operations, analytics, and exports. * * @module analysis/graph-manager */ import { Graph } from "@dagrejs/graphlib"; import type { Plugin } from "../../plugin.js"; import type { GraphAnalytics, GraphExport } from "./graph-types.js"; /** * Manages dependency graph operations, analytics, and exports * * Provides: * - Topological sorting with cycle detection * - Parallel execution grouping * - Comprehensive graph analytics * - Export to DOT and JSON formats */ export declare class DependencyGraphManager { private readonly plugin; private graph?; constructor(plugin: Plugin); /** * Perform topological sort and build dependency graph * * @param dimensions - All dimension names * @param dependencies - Dependency graph * @returns Topologically sorted dimension names * @throws {CircularDependencyError} If cycles detected */ buildAndSort(dimensions: string[], dependencies: Record): Promise; /** * Group dimensions for parallel execution * * Returns batches where dimensions in each batch can run in parallel. * * @param dimensions - Sorted dimension names * @param dependencies - Dependency graph * @returns Array of execution groups * @throws {ExecutionGroupingError} If grouping fails */ groupForParallelExecution(dimensions: string[], dependencies: Record): string[][]; /** * Get comprehensive graph analytics * * @param dimensions - All dimension names * @param dependencies - Dependency graph * @returns Graph analytics */ getAnalytics(dimensions: string[], dependencies: Record): Promise; /** * Export graph as DOT format for visualization * * @param dimensions - All dimension names * @param dependencies - Dependency graph * @returns DOT format string */ exportDOT(dimensions: string[], dependencies: Record): Promise; /** * Export graph as JSON for programmatic use * * @param dimensions - All dimension names * @param dependencies - Dependency graph * @returns JSON graph export */ exportJSON(dimensions: string[], dependencies: Record): Promise; /** * Get the internal graph instance */ getGraph(): Graph | undefined; private validateAcyclic; private createGroupingError; private findCriticalPath; private getLongestPath; private findParallelGroups; private findBottlenecks; } //# sourceMappingURL=graph-manager.d.ts.map