import type { MemoryBackend } from "./types.js"; export interface MemoryBackendContractHooks { make: () => Promise | MemoryBackend; /** A second backend instance over the SAME storage as the given one (cross-instance CAS cases). */ makeSibling?: (of: MemoryBackend) => Promise | MemoryBackend; /** * design/142 §6.3: the ONLY way to run the suite without `makeSibling`. State WHY this store has no * shared-storage second instance (e.g. "process-exclusive single-writer file store; cross-process CAS * covered by "). Runs as a named, visible case (a LOUD skip) — never a silent 16/17 pass. * Authoritative-backend certification (§6.1 (a)) must provide `makeSibling` instead. */ skipCrossInstanceCas?: string; /** Wrap each case (vitest `it`, sequential SQL chaining, …). Default: run sequentially. */ runAssertion?: (name: string, fn: () => Promise) => void | Promise; } /** Run the full conformance suite. Throws (assert) on the first violated contract clause. */ export declare function memoryBackendContract(hooks: MemoryBackendContractHooks): Promise; /** Cross-backend value equivalence: same fixture ⇒ IDENTICAL (id, slug, score) search projections on * two backends (File vs Pg lexical floor must not drift — assertMemoryValueEquivalence precedent). * mtimeMs/sizeBytes are backend-native (fs stat vs column) and deliberately not compared. */ export declare function assertMemoryBackendSearchEquivalence(a: MemoryBackend, b: MemoryBackend): Promise; //# sourceMappingURL=memory-backend-contract.d.ts.map