import { type DiffFile } from "./diff-parser.js"; import type { Verdict } from "./types.js"; export type ReadOriginal = (path: string) => string | null; /** Read a file the diff modifies from `--repo` — the PRE-image every AST detector reconstructs * the post-image against. Absent/unreadable is a legitimate outcome (a file the diff claims to * modify but that does not exist at this repo root — quarantine to "no finding", never throw: * the gate must still report on every OTHER file). */ export declare function repoFileReader(repoRoot: string): ReadOriginal; /** * Run every detector over a parsed diff and fold the results into one verdict. * * Each detector is independent and pure over (files, readOriginal); a detector throwing is a * detector bug, not a caller concern, so callers should treat any throw here as "the gate could * not evaluate this diff" rather than catch and silently drop a class. */ export declare function evaluateDiff(files: readonly DiffFile[], readOriginal: ReadOriginal): Verdict; /** Parse a unified diff and evaluate it in one call — the entry point the CLI and tests use. */ export declare function evaluateDiffText(diffText: string, readOriginal: ReadOriginal): Verdict;