import type { GraphIR } from "./graph-ir.js"; /** * Lenses — focus the graph IR on a slice without touching the source. Pure * IR → IR filters, composable with detail tiers (apply a lens, then view the * result at any `--detail`). See issue #495 / epic #492. * * - `lexicon:` — only nodes in a lexicon * - `stack:` — only one stack's nodes (stacks map to lexicon partitions today) * - `blast:` — the transitive neighbourhood of a node: what it depends * on (`--up`), what depends on it (`--down`), or both (default) * * Every lens drops edges that would dangle and rebuilds group metadata from the * surviving nodes, so the result is always a self-consistent graph. */ export interface LensSpec { kind: "lexicon" | "stack" | "blast"; target: string; /** blast: include upstream producers (what the node depends on). */ up: boolean; /** blast: include downstream dependents (what depends on the node). */ down: boolean; } /** Parse a `--lens` spec. Throws a descriptive Error on a malformed spec. */ export declare function parseLens(spec: string, opts?: { up?: boolean; down?: boolean; }): LensSpec; /** Apply a lens to the IR. Throws a descriptive Error when the target matches nothing. */ export declare function applyLens(ir: GraphIR, lens: LensSpec): GraphIR; //# sourceMappingURL=graph-lens.d.ts.map