/** * Streaming value(i) resolvers — compute a single row's value on demand for * Engine 2, using the seekable PRNG and the Feistel permutation. Pure: no * context, no arrays of length `count`. See * `docs/superpowers/specs/2026-07-14-engine2-streaming-impl.md`. * * - **Exact percent** — place a sorted Hamilton quota plan by `permute(i)`. * The bijection sends exactly the first `counts[0]` indices into the first * category's slot range, so the distribution is byte-exact with NO array * (a "lottery with no tumbler"). * - **Uniform list pick** — an independent seekable draw per row. * - **Counters** — pure functions of `i`. * * The list-agnostic generators (number ranges, dates, regex, symbols) are * resolved at the integration layer by reusing the existing generator on a * per-row seekable draw, so their logic is not duplicated here. */ /** Category index (into a quota plan) for row `i` under exact percentages. */ export declare function percentCategoryAt(counts: readonly number[], count: number, key: number, i: number): number; /** * Exact-percentage value for row `i` from parallel `values`/`counts` arrays * (`counts` = Hamilton quotas from `computeCountsPerValue`, summing to * `count`). The result distribution is exact over the whole dataset. */ export declare function percentValueAt(values: readonly string[], counts: readonly number[], count: number, key: number, i: number): string; /** * A reusable exact-% resolver `value(i)` that precomputes the cumulative quota * bounds ONCE and binary-searches per row — O(log #values), vs `percentValueAt` * which rescans linearly each call. Matters for WIDE columns (many values, e.g. * a uniq column with a value per row): rendering drops from O(count²) to * O(count·log). Identical result to `percentValueAt`. */ export declare function makePercentResolver(values: readonly string[], counts: readonly number[], count: number, key: number): (i: number) => string; /** Uniform pick from `values` for row `i` (independent seekable draw). */ export declare function uniformValueAt(values: readonly string[], seed: string, streamId: string, i: number): string; /** `increment` / `decrement` value for row `i` (pure). */ export declare function counterValueAt(kind: 'increment' | 'decrement', start: number, step: number, i: number): number; //# sourceMappingURL=stream-resolve.d.ts.map