import type { IndexFiles } from "../indexer/index-files.js"; import type { IndexMemory } from "../indexer/index-memory.js"; import type { Evidence, RetrievalMethod, VerifyResult, CodeChunk } from "../types/index.js"; export interface CreateEvidenceInput { chunk: CodeChunk; file: { path: string; }; method: RetrievalMethod; score: number; } /** * Persist an Evidence row for a single retrieval hit and return the public * shape. Uses the chunk's own `content` (already in SQLite) for hashing so * there's no filesystem read on the hot path. */ export declare function createEvidence(indexer: IndexFiles & IndexMemory, input: CreateEvidenceInput): Evidence; /** * Verify an evidence id: reads the span at the current HEAD and classifies * the outcome. The stored content_hash is the truth; the classifier walks * a window around the original line range to detect a "moved" case. */ export declare function verifyEvidence(indexer: IndexFiles & IndexMemory, evidenceId: string): VerifyResult; /** * Render a list of Evidence as the JSON footer appended to tool responses. * Consumers ignoring the footer see a fenced code block they can skip; * structured consumers parse `evidence_ids` out. */ export declare function renderEvidenceFooter(list: Evidence[]): string;