/** * @fileoverview Strongly-connected-components (Tarjan) over the graph view * model's node/edge set. * * Extracted from `graph-view-model.ts` to keep that projector under the * file-length budget. The algorithm is purely structural — it operates on * string ids and an adjacency map, with no dependency on the view-model * shapes — so it lives as a standalone, reusable unit. * * Replicated here rather than imported from the graph engine: the * catalog-decoupling rule forbids `dashboard → @opensip-tools/graph`. */ /** * Build a directed adjacency map (`source id → unique target ids`) from a * node set and edge set. Generic over any `{ id }` node and * `{ source, target }` edge so it stays independent of the view-model types. */ export declare function buildAdjacency(nodes: readonly { readonly id: string; }[], edges: readonly { readonly source: string; readonly target: string; }[]): Map; /** * Tarjan's strongly-connected-components algorithm (iterative, no recursion * so deep call graphs don't blow the stack). Returns a map from node id → SCC * id, populated ONLY for nodes in a non-trivial SCC (size ≥ 2, or a singleton * with a self-edge). Trivial singletons are omitted so the view treats them * as `sccId: null`. */ export declare function tarjanSccIds(nodeIds: readonly string[], adjacency: ReadonlyMap): Map; //# sourceMappingURL=graph-scc.d.ts.map