import type { CharterDelta, GoalGraph } from "audit-tools/shared"; /** * Blast radius of a goal node = the size of its transitive PARENT closure — every * goal it (transitively) serves. A fix at this node ripples up to all of them, so * the count is how far up the DAG the ripple reaches. A leaf-most node serving no * parent has blast radius 0; the telos (served by everything, serving nothing) has * blast radius 0 too — the ripple is measured UPWARD, toward parents. * * Cycle-safe (a malformed graph never loops): visited-set guarded. A node absent * from the graph has blast radius 0 (nothing to ripple to). */ export declare function goalBlastRadius(graph: GoalGraph, nodeId: string): number; /** * Resolve the blast radius for a delta whose subsystem maps to a goal node. When a * delta's node is not present in the goal graph (the host supplied no DAG, or the * subsystem was never linked to a goal), fall back to the delta KIND's intrinsic * blast tier. This keeps ranking meaningful even before a goal graph exists (the * common conversation-first default), and lets a real graph refine it when * present. */ export declare function deltaBlastRadius(graph: GoalGraph, goalNodeId: string | undefined, deltaKind: CharterDelta["kind"]): number; //# sourceMappingURL=blastRadius.d.ts.map