/** * A share that asks for less than one whole row. * * `percent` is an exact quota over the rows that reach it, not a chance rolled * per row. Ten percent of a five-row subset asks for HALF a record, and half a * record cannot be emitted — so the branch produces one or none, and the seed * alone decides which. The engine rounds and says nothing, which is how a column * that came out empty reads as a config that was never written rather than one * that rounded away. * * It is a warning, not an error. The config runs, the totals still sum to * `count`, and nothing is lost; what does not happen is what the author wrote. * * ── Why the denominator is knowable ────────────────────────────────────────── * The obstacle sounds like "the validator cannot know how many rows reach the * branch", and for the shapes people actually write it can: * * - a `` or a `` at the top of `` — the denominator is * `count`; * - either of those with `parent="Seq.Value"` — `count` x that value's share; * - a `` inside `` of `` — `count` x the share * `X` takes of `S`. * * A share is only known when the subject is a plain `text` generator writing its * own `percent`. Anywhere else — a file, a pack, an expression — this stays * SILENT. A check that guessed the denominator would fire on working configs and * be turned off, which is worse than the silence it replaces. */ import type { Diagnostic } from '../errors/index.js'; import type { OpenCloseElementContext } from '../generated/TDCParser.js'; /** * Warn about every share below one row that this `` can be shown to hold. * * Runs as its own pass rather than inline: the denominator of a `` in a * switch branch belongs to the switch, and threading it down through the case * walk would put an argument about arithmetic into five signatures that are * about structure. */ export declare function checkSmallShares(envEl: OpenCloseElementContext, count: number, diagnostics: Diagnostic[]): void; //# sourceMappingURL=small-share.d.ts.map