import { SymbolData } from '../config/types.js'; /** * Weighted random symbol selector using binary search on cumulative weights. * * Supports exclusion lists for symbols that shouldn't appear during * spinning or in buffer areas. */ export declare class RandomSymbolProvider { private _symbols; private _weights; private _cumulativeWeights; private _totalWeight; private _excludeSpinning; private _excludeBuffer; private _rng; /** * @param symbolsData - Symbol id → weight/data map. * @param rng - Source of randomness returning a value in [0, 1). Defaults to * `Math.random`. Regulated / provably-fair deployments must inject a * seeded, audited PRNG so the on-screen strip can be replayed from a seed. */ constructor(symbolsData: Record, rng?: () => number); /** Get a random symbol, optionally excluding buffer-only symbols. */ next(useBufferExclusion?: boolean): string; /** Set symbols to exclude during spinning. */ setExcludeSpinning(symbolIds: string[]): void; /** Set symbols to exclude from buffer (above/below) areas. */ setExcludeBuffer(symbolIds: string[]): void; /** Update weights at runtime (e.g., for different game modes). */ updateWeights(symbolsData: Record): void; private _assertUsable; private _rebuildWeights; private _pickWeighted; } //# sourceMappingURL=RandomSymbolProvider.d.ts.map