import type { AssertionResult } from "./judge.js"; export interface CacheEntry { pass: boolean; reasoning: string; cachedAt: string; judgeModel: string; } export interface CacheData { version: number; entries: Record; } export declare class JudgeCache { private readonly skillDir; private data; private dirty; private readonly cachePath; constructor(skillDir: string); private load; static computeKey(assertionText: string, output: string, judgeModel: string): string; getOrCompute(assertionText: string, output: string, judgeModel: string, compute: () => Promise): Promise; has(assertionText: string, output: string, judgeModel: string): boolean; get size(): number; /** * Persist cache to disk. Call after all operations are complete. * Also ensures .judge-cache.json is in .gitignore. */ flush(): void; private ensureGitignore; }