import { type ReplayCaseInput, type ReplayCaseRecord } from "./replay-types.js"; /** * Derive a deterministic 16-char hex case id from the case signature. * caseId = sha256(`${contractId}|${iteration}|${diffDigest}`).slice(0,16) * MIRRORS factId at src/state/facts.ts:58-69. * * NOTE: tCaptured is intentionally EXCLUDED from the hash so the id stays * stable across captures — only a change in diffDigest changes the id. * Identical inputs always produce the same id — no wall-clock dependency. */ export declare function caseId(contractId: string, iteration: number, diffDigest: string): string; /** * SQLite-backed replay case store. * * PURE: Never calls Date.now() or new Date() — every timestamp is a parameter. * Hidden behind this interface so the driver (better-sqlite3) is swappable. * * bober: in-memory or file-backed via better-sqlite3 (synchronous); swap for * node:sqlite when engines.node is raised to >=22.5. */ export declare class ReplayStore { private db; constructor(dbPath: string); /** * Insert or replace a replay case. Validates input with ReplayCaseSchema and * derives the deterministic caseId. Returns the persisted ReplayCaseRecord. */ putCase(input: ReplayCaseInput): ReplayCaseRecord; /** * Return a single replay case by its id. * Returns null if not found. */ getCase(id: string): ReplayCaseRecord | null; /** * Return all replay cases ordered by t_captured ascending. */ listCases(): ReplayCaseRecord[]; /** * Return the baseline verdict for a case id, or null if not found. */ getBaselineVerdict(id: string): string | null; /** Close the underlying database connection. */ close(): void; } //# sourceMappingURL=replay-store.d.ts.map