import type { ContextualLinkFailure, ContextualLinkReadResult, ContextualLinkResolution, ContextualScanTotals } from '../link-health/types.js'; import { type GraphPlan, planGraphFacts } from './graph-plan.js'; import { BUILTIN_GRAPH_RULES, GRAPH_RULE_METADATA } from './graph-rules.js'; import { type GraphFactKey, type GraphFacts } from './graph-types.js'; import type { EvaluationResult, ReviewScope } from './types.js'; export { BUILTIN_GRAPH_RULES, GRAPH_RULE_METADATA, planGraphFacts }; export type { GraphPlan } from './graph-plan.js'; export type { ContextualLinkFacts, ContextualOccurrence, DocumentApplicability, DocumentApplicabilityFacts, GraphDocument, GraphEdge, GraphEdgeFacts, GraphFactKey, GraphFacts, GraphRule, GraphRuleId, ResolvedLinkFacts, ResolvedLinkTarget, ResolvedOccurrence, } from './graph-types.js'; export interface GraphReviewResult { readonly plan: GraphPlan; readonly facts: GraphFacts; readonly review: EvaluationResult; readonly totals: ContextualScanTotals; readonly failures: readonly ContextualLinkFailure[]; /** True when any document failed to read or parse; `links.unlinked` suppresses all findings in that case. */ readonly incompleteGraph: boolean; /** Test-only visibility into which fact layers actually ran, in execution order. */ readonly executionTrace: readonly GraphFactKey[]; } /** * Plans the selected built-in graph rules, materializes each planned fact * layer exactly once, and evaluates formal findings from a frozen, * declared-keys-only slice per rule. `documents` and `scope` are copied * before use, so no caller-owned value is mutated or frozen. */ export declare function materializeGraphReview(documents: readonly ContextualLinkReadResult[], resolve: (slug: string) => ContextualLinkResolution, ruleIds?: readonly string[], scope?: ReviewScope): GraphReviewResult; //# sourceMappingURL=graph.d.ts.map