export declare const FORMAT_VERSION_SLOT = 10; export declare const SLOT_MAGIC: Buffer; export declare const SLOT_MULTIPLIER_SCALE = 10000n; export declare const MAX_SLOT_DIM = 16; export declare const SLOT_HEADER_BYTES = 41; export declare const SLOT_RNG_TARGET_OFFSETS: bigint[]; export declare const MAX_SLOT_ARTIFACT_BYTES = 8192; export type SlotGameSpec = { rows: number; cols: number; /** Symbol strips per column; each entry is a symbol index < symbolCount. */ reels: number[][]; /** Row index per column for each payline. */ paylines: number[][]; /** paytable[symbol][matchedCount], scaled by 10000; rows of length cols+1. */ paytable: bigint[][]; wildIdx: number; scatterIdx: number; paytableScaleNum: number; paytableScaleDen: number; minInputLamports: bigint; maxInputLamports: bigint; /** Max-win cap relative to the bet, scaled by 10000 (e.g. 50_000_000 = 5000x). */ maxWinMultiplier: number; }; export type SlotSpec = { minInputLamports: bigint; maxInputLamports: bigint; maxWinMultiplier: number; rows: number; cols: number; symbolCount: number; wildIdx: number; scatterIdx: number; paylinesCount: number; paytableScaleNum: number; paytableScaleDen: number; /** Symbol strip per column. */ reels: Buffer[]; paylinesOff: number; paytableOff: number; blob: Buffer; }; export type SlotSpinOutcome = { totalWinLamports: bigint; reelStops: number[]; }; export declare function encodeSlotArtifact(spec: SlotGameSpec): Buffer; export declare function parseSlotArtifact(blob: Buffer): SlotSpec; /** Per-spin vault exposure cap: `round(bet × max_win_multiplier / 10000)`. */ export declare function maxWinCap(betLamports: bigint, maxWinMultiplier: number): bigint; /** * Replay one spin: 32-byte rng_v2 randomness → reel stops → line + scatter wins. * Returns the RAW win (the settle instruction clamps it by `maxWinCap`). */ export declare function replaySpin(spec: SlotSpec, randomness: Buffer, betLamports: bigint): SlotSpinOutcome; //# sourceMappingURL=slot.d.ts.map