export type ValveNodeKind = 'supply' | 'gate' | 'faucet'; export interface ValveGraphNode { readonly id: string; readonly kind: ValveNodeKind; } /** * `crossing` — a producer delivers to a faucet. `context` — a gate's enrichment * depends on an inbound valve. `retraction` — a superseded crossing invalidates * the downstream it fed. */ export type ValveEdgeKind = 'crossing' | 'context' | 'retraction'; export interface ValveGraphEdge { readonly kind: ValveEdgeKind; readonly from: string; readonly to: string; } /** The directional data-dependency graph, distinct from the package graph. */ export interface ValveGraph { readonly nodes: readonly ValveGraphNode[]; readonly edges: readonly ValveGraphEdge[]; } /** Assemble the valve graph from every registered valve and faucet. */ export declare function buildValveGraph(): ValveGraph; /** Faucet node ids fed by the named valve — the direct downstream of a crossing. */ export declare function downstreamFaucets(graph: ValveGraph, valveName: string): readonly string[]; /** Gate valve names whose enrichment context depends on the named valve. */ export declare function contextDependents(graph: ValveGraph, valveName: string): readonly string[]; //# sourceMappingURL=graph.d.ts.map