/** * Engine 3 — exact-on-disk sequence registry. * * Engine 3's goal: everything Engine 1 does (EXACT percentages AND uniqueness, * including `percent` + `uniq` on the same columns), but for datasets larger * than RAM. Strategy: * * 1. Try the SEEKABLE builder (Engine 2's machinery) with exact-% uniq * construction + external uniqueness verification. When it succeeds the * whole run is O(1)-memory and byte-exact — the common, ample-slack case * (unique records over a large combination space). * 2. If the seekable path can't do it — a feature it doesn't handle lazily * (StreamUnsupportedError), or the exact-% construction leaves collisions * on a tight config (ExactUniqRepairNeeded) — fall back to the in-memory * exact engine (Engine 1). Correct always; bounded-memory for the common * case. The bounded-memory repair for the tight case is stage 4. * * That fallback is for a config that asked for a COST — `mode="disk"`. A * caller that NAMED engine 3 gets a refusal instead: see `named` below. */ import { type SequenceBuildOptions } from './build.js'; import type { SequenceRegistry, SequenceSpec } from './types.js'; export declare function buildExactDiskRegistry(specs: readonly SequenceSpec[], count: number, seed: string, prng: () => number, locale: string, now: number, options: SequenceBuildOptions, envUniqGroups: readonly (readonly string[])[], envDistinctGroups: readonly (readonly string[])[], /** * Whether the caller NAMED this engine rather than describing a constraint. * * The rule is not new — the streaming side has followed it all along, and says * why: `engine="2"` and `mode="stream"` say WHICH engine to use, so a refusal * is the answer, because quietly running somewhere else hides exactly what the * author asked to be told. `mode="disk"` says what the run may COST, so * falling back to a slower engine still honours it. * * Engine 3 was never wired to that rule, and the gap was not theoretical: a * tight `` under `--engine 3` produced BYTE-IDENTICAL output to * `--engine 1` while the same config inside the repair cap produced different * bytes on the two engines. Anyone measuring engine 3 on a tight config was * measuring engine 1, silently. It happened three times in one day to the * person who wrote the fallback. */ named?: boolean): SequenceRegistry; //# sourceMappingURL=exact-disk.d.ts.map