export type EvidenceNode = { id: string; kind: "source" | "fact" | "asset" | "visitor_need" | "hypothesis" | "candidate" | "finding" | "render" | "decision" | "section"; label: string; sourcePath: string; sourceHash: string; excerpt?: string; provenance: "customer" | "operator" | "derived" | "external_untrusted"; uncertainty?: string; }; export type EvidenceEdge = { from: string; to: string; relation: "supports" | "depicts" | "answers" | "expresses" | "implements" | "contradicts" | "supersedes" | "uses" | "evaluates"; sourcePath: string; sourceHash: string; uncertainty?: string; }; export type EvidenceIndex = { schemaVersion: 1; inputHash: string; nodes: EvidenceNode[]; edges: EvidenceEdge[]; unresolvedAliases: string[]; }; /** Rebuilds from authoritative site files. Direction: from subject to object, e.g. fact supports need. */ export declare function buildEvidenceIndex(root: string, creativeRoot?: string): EvidenceIndex; export declare function writeEvidenceIndex(root: string, outputPath: string, creativeRoot?: string): EvidenceIndex; export declare function connectedEvidence(index: EvidenceIndex, id: string, depth?: number): { nodes: EvidenceNode[]; edges: EvidenceEdge[]; }; /** Rank an objective's seeds and their bounded neighborhoods. Preserve provenance in the packet. */ export declare function retrieveCreativeEvidence(index: EvidenceIndex, opts: { query: string; seedIds?: string[]; maxNodes?: number; maxChars?: number; depth?: number; }): { nodes: EvidenceNode[]; omitted: number; chars: number; reasons: { [k: string]: string; }; edges: EvidenceEdge[]; }; export declare function proofForSection(index: EvidenceIndex, sectionId: string): EvidenceNode[]; export declare function imagesForSection(index: EvidenceIndex, sectionId: string): EvidenceNode[]; export declare function sectionsAffectedByDecision(index: EvidenceIndex, decisionId: string): EvidenceNode[]; /** A storyboard answer is an intent; this flags answers without source-backed facts. */ export declare function visitorQuestionsWithoutProof(index: EvidenceIndex): { sectionId: string; questionId: string; question: string; }[];