import type { ConformanceFinding, Refutation } from "./conformance-types.js"; import type { ResolvedConfig } from "../types.js"; export interface CachedRead { /** Hash of the file's bytes when it was read. */ hash: string; findings: ConformanceFinding[]; refuted: Refutation[]; } export interface ConformanceCache { schema: 1; /** Identity of the reader that produced these verdicts. */ identity: string; /** Keyed by repo-relative path, so a moved checkout keeps its cache. */ files: Record; } export declare function hashText(text: string): string; /** Everything that changes the answer without changing the file. */ export declare function readerIdentity(skill: { version: number; text: string; }, model: string, kitExports: string[]): string; export declare function cachePath(resolved: ResolvedConfig): string; export declare function emptyCache(identity: string): ConformanceCache; /** * The cache, or an empty one. A cache written by a different reader is * discarded whole rather than partially trusted: the identity is exactly the * set of things that could make every entry in it wrong at once. */ export declare function loadCache(resolved: ResolvedConfig, identity: string): Promise; export declare function saveCache(resolved: ResolvedConfig, cache: ConformanceCache): Promise;