import { ReelPhase } from './ReelPhase.js'; export interface StopPhaseConfig { /** Target symbols for this reel (full frame including buffers, top-to-bottom). */ targetFrame: string[]; /** Delay before this reel starts stopping (for staggered stop). */ delay?: number; /** * Keep the reel's CURRENT speed into the spin-out instead of restoring full * spin speed. Set by the controller when this stop follows an anticipation * tease, so the reel crawls its target into place at the slow anticipation * speed and stops exactly there. rather than snapping back to full speed and * doing a fast spin-out. A small floor is applied so a `slowdown.to: 0` * curve can't stall the reel. */ preserveSpeed?: boolean; } /** * Stops the reel on the target frame. * * Sequence: * 1. Wait for the staggered delay. * 2. Keep spinning at full speed with `isStopping` flagged. The target frame * is loaded into the StopSequencer; each wrap event at the top of the * reel pulls the next frame symbol. so targets arrive in the visible * area naturally, carrying the full momentum of the spin. * 3. When the sequencer is exhausted, snap to grid and bounce: * - overshoot downward by `bounceDistance` with `power1.out` * - settle back upward with `power1.out` * Both legs share a duration so the down + up motion is symmetric. */ export declare class StopPhase extends ReelPhase { readonly name = "stop"; readonly skippable = true; private _config; private _delayTween; private _bounceTween; private _stage; private _baseY; protected onEnter(config: StopPhaseConfig): void; private _beginSpinOut; update(_deltaMs: number): void; private _landAndBounce; protected onSkip(): void; private _killTweens; } //# sourceMappingURL=StopPhase.d.ts.map