import EventEmitter from '@zimi/event-emitter'; interface Options { /** * degree per clock cycle * 表示转动稳定后的速度(度 每 时钟周期) * @default 5 */ speedRatio?: number; /** * 最小转动角度 * (不转到该角度不会停, 即使 run 之后立马 shouldStopAtDeg) * @default 3600 */ minRunningDeg?: number; /** * 开始时的缓动角度 * (在该角度内慢慢加速至最大速度) * @WARNING 必须大于零(不能等于 0) * @default 540 */ easeStartDeg?: number; /** * 停止时的缓动角度 * (在该角度内慢慢减速至目标角度) * @WARNING 必须大于零(不能等于 0) * @default 540 */ easeStopDeg?: number; } export type PrizeWheelEventsOverview = { start: []; running: []; end: []; }; /** * 幸运大转盘 逻辑部分 */ export declare class PrizeWheel extends EventEmitter { private rawDeg; /** * 当前角度 */ get deg(): number; private set deg(value); /** * degree per clock cycle * 表示转动稳定后的速度(度 每 时钟周期) */ speedRatio: number; /** * 最小转动角度 */ minRunningDeg: number; /** * 开始时的缓动角度 * @WARNING 必须大于零(不能等于 0) */ easeStartDeg: number; /** * 停止时的缓动角度 * @WARNING 必须大于零(不能等于 0) */ easeStopDeg: number; private rawRunning; /** * 是否正在转动 */ get running(): boolean; private set running(value); /** * 期望停在哪个角度 */ private shouldStopAtDeg; constructor(options?: Options); /** * 启动大转盘 * @WARNING 该方法会重置 shouldStopAtDeg; * 如果你调用了 shouldStopAt 方法后, 继续调用 run 方法, * 会导致前一个 shouldStopAt 方法失效; * (本当如此, 因为你先说停, 后说继续, 那本来就应该继续, 直到下一个 '停') */ run(): void; /** * 重置 */ reset(): void; /** * 外部如需停止转盘, 需要调用 shouldStopAt 方法 */ private end; /** * 期望停在哪个角度 * @param deg 0 - 360 */ shouldStopAt(deg: number): void; private animate; } export {};