import type { Store } from "@rotorsoft/act/types"; /** * Property-based contract for the store-level invariants the drain pipeline * depends on — commit version monotonicity, claim/lease no-leak, watermark * monotonicity, and block exclusion. These ran only against `InMemoryStore` * before ACT-982; running them against the durable adapters too is the only * way to catch a divergence the example-based TCK cases miss. * * Each predicate resets the store (`drop` + `seed`) so randomized runs are * isolated. Durable adapters should pass a reduced `numRuns` and their own * dedicated schema/file so a parallel test worker can't clobber the table. */ export type StorePropertyTckOptions = { /** Adapter name for the describe block. */ name: string; /** Produces the store under test (created once, reset between runs). */ factory: () => Store | Promise; /** fast-check runs per property. Default 100; lower for durable adapters. */ numRuns?: number; /** * Per-property timeout in milliseconds. Default 5000, matching vitest. * * Every run of a property is a full reset plus a dozen or more round * trips, so against a real database the wall time is dominated by I/O and * by whatever else the machine is doing. Vitest's default is comfortable * in isolation and not under a parallel suite sharing one server, which * showed up as this file intermittently timing out rather than failing an * assertion. Durable adapters should raise it; the in-memory store has no * reason to. */ timeoutMs?: number; }; export declare const runStorePropertyTck: (options: StorePropertyTckOptions) => void; //# sourceMappingURL=store-property-tck.d.ts.map