/** * A `` built in memory, arranged exactly as the streaming engine arranges it. * * The mirror of `stream-mix.ts`, and deliberately so: a mix picks its case by an * exact percentage layout over the whole run, then assembles that case's body. * Both halves are keyed by `(seed, streamId)`, so the two engines put the same * case on the same row and draw the same body for it. * * The one thing to keep straight is which index is which. A row has three * numbers here: * - its POSITION in the mix's domain (0…size−1, after any parent mask), * - its SLOT, `permute(position)`, which is what the case quotas are cut from, * - its ROW, the absolute index in the run, which is what a per-row draw keys on. * A case's body sees a domain of its own, where position runs 0…quota−1 in slot * order — not in row order — and that is exactly what the streaming engine's * `popIndexAt` hands it. */ import type { SequenceBuildContext } from './context.js'; import type { CaseSpec, MixSpec } from './types.js'; /** The rows a mix (or one of its cases) covers, in the order it builds them. */ export interface MixDomain { readonly size: number; /** The absolute row of the domain's `local`-th position. */ readonly rowAt: (local: number) => number; } /** Build a mix over `domain`, returning one value per position in it. */ export declare function buildKeyedMixValues(mixSpec: MixSpec, domain: MixDomain, seed: string, streamId: string, prng: () => number, locale: string, now: number, ctx: SequenceBuildContext, flagsOut?: boolean[]): string[]; /** * `flagsOut`, when given, records for each row whether the case selected for it * carries `anomaly="true"` — the ground-truth label behind ``. * It reflects the SELECTION, so the label and the value can never disagree. */ export declare function buildMixValues(mixSpec: MixSpec, count: number, prng: () => number, locale: string, now: number, ctx: SequenceBuildContext, flagsOut?: boolean[]): string[]; export declare function buildCaseValues(caseSpec: CaseSpec, count: number, prng: () => number, locale: string, now: number, ctx: SequenceBuildContext): string[]; //# sourceMappingURL=mix-values.d.ts.map