import type { EdictModule } from "../ast/nodes.js"; /** * Forward dependency graph: for each definition name, the set of definition * names it depends on (calls or references by type). */ export interface DepGraph { /** Forward edges: name → set of names it depends on */ forward: Map>; /** Reverse edges: name → set of names that depend on it */ reverse: Map>; /** All definition names in the module */ allNames: Set; } /** * Build a definition-level dependency graph from an EdictModule. * * Edges come from two sources: * 1. Call edges — function A calls function B * 2. Type reference edges — definition uses a named type (record, enum, type alias) */ export declare function buildDepGraph(module: EdictModule): DepGraph; /** * Given a set of changed definition names, compute all definitions that * transitively depend on any changed definition (via reverse edges). * * Returns the union of `changedNames` and all their transitive dependents. */ export declare function transitiveDependents(graph: DepGraph, changedNames: Set): Set; //# sourceMappingURL=dep-graph.d.ts.map