/** * Can this `` group produce `count` distinct rows AT ALL — asked before a * single row is built. * * The group already had a capacity check, and its message is the right one: * "cannot produce 10000000 unique combinations — the values drawn for these * sequences allow at most 100 distinct rows". But it ran over the FINISHED * columns, so reaching it meant materialising them first. Two lists of ten * values and `count="1000000000"` therefore died in the allocator with a V8 * heap dump, and `count="5000000000"` with `Invalid array length` — exactly * where the warning is worth most, because the alternative is an eight-hour run * that was never going to succeed. * * So the same question is asked here from the SPECS alone: how many distinct * values can each member possibly produce? A `text` list of ten names can make * ten; an integer range `1..100` can make a hundred. The product is a true upper * bound on the distinct tuples, and `count` above it is impossible whatever the * seed. * * ── Why it only ever answers "definitely impossible" ───────────────────────── * * A member whose capacity is not knowable from its spec — a pack draw, a regex, * a file this has not read — makes the group unbounded, and then this says * nothing at all and the existing post-build check does its work as before. A * refusal here is a proof, never a guess: no config that could have worked is * turned away. */ import type { SequenceSpec } from './types.js'; /** * Refuse a `` group whose members cannot possibly cover `count` rows. * * Called before any column is materialised. Silent unless every member's * capacity is known and their product is short of `count`. */ export declare function checkEnvUniqCapacity(groups: readonly (readonly string[])[], specs: readonly SequenceSpec[], count: number): void; //# sourceMappingURL=uniq-capacity.d.ts.map