/** * What the streaming builder refuses, and why — decided while the column is * built, never when a row is read. * * Every refusal here names a construct whose answer is a property of the WHOLE * column: a running total is the sum of the rows before it, a statistic needs * the rows after it as well, a date measured from a sibling needs a column the * lazy path cannot reach, a pack generator with a share apportions its quota * over the run. * * The timing is the load-bearing part. `buildExactDiskRegistry` wraps the * registry BUILD in a try/catch and falls back to the in-memory engine — that * fallback is what makes engine 3 "exact and bounded, or in memory when it * cannot be both". A refusal raised lazily, at the row that reads the value, * arrives long after that catch has returned, so it reaches the caller as an * error instead of a fallback. That is exactly what happened to the whole-column * pack check while it lived deep inside `buildGenValues`: 37 refusals fell back * correctly and that one escaped. * * Collected in one file because they are one idea, and because `stream-build.ts` * has a line ceiling that this group kept pushing it through. */ import type { GenSpec, SequenceSpec } from './types.js'; /** * Refuse `spec` if the streaming path cannot answer it a row at a time. * * Returns normally when it can. Ordered so the message a user sees names the * most specific reason: a `` is a date before it is * anything else, and a pack generator is refused for its quota rather than for * being a template. */ export declare function refuseIfWholeColumn(spec: SequenceSpec): void; /** * Refuse a GEN the lazy builder cannot answer a row at a time. * * The two here are refused per generator rather than per sequence, because a * compound sequence's fields carry their own — but they are the same idea as * everything above, and they belong to the same timing rule: raised while the * column is CONSTRUCTED, so engine 3's catch turns them into a fallback rather * than an error. */ export declare function refuseIfLazyImpossible(gen: GenSpec, streamId: string): void; //# sourceMappingURL=stream-refusals.d.ts.map