export declare const WHEEL_MULTIPLIERS: readonly [1, 3, 5, 10, 20];
export declare const WHEEL_SEGMENTS: readonly [1, 3, 1, 5, 1, 3, 1, 10, 1, 3, 1, 5, 1, 3, 1, 20, 1, 3, 1, 5, 1, 3, 1, 10, 5];
export declare const WHEEL_MAX_TOTAL_BET = 10000;
export declare const WHEEL_MIN_BET = 100;
type WheelPhase = 'betting' | 'spinning';
export interface WheelRoundState {
    id: string;
    phase: WheelPhase;
    segments: number[];
    bettingStartedAt: string;
    bettingEndsAt: string;
    spinStartedAt: string | null;
    spinEndsAt: string | null;
    phaseEndsAt: string;
    phaseRemainingSeconds: number;
    winningIndex: number | null;
    winningValue: number | null;
    displayStartRotation: number;
    displayTargetRotation: number | null;
    totalBets: Record<string, number>;
    userBets: Record<string, number>;
}
export interface WheelStateResponse {
    roomKey: string;
    serverTime: number;
    round: WheelRoundState;
    recentResults: Array<{
        roundId: string;
        winningIndex: number;
        winningValue: number;
        resolvedAt: string;
    }>;
    balance: number;
}
export type PlaceWheelBetResult = {
    success: true;
    balance: number;
} | {
    success: false;
    reason: 'invalid_room' | 'invalid_multiplier' | 'invalid_amount' | 'betting_closed' | 'insufficient_balance' | 'bet_limit_exceeded';
    balance?: number;
    remainingLimit?: number;
};
export type CancelWheelBetResult = {
    success: true;
    balance: number;
    refundedAmount: number;
} | {
    success: false;
    reason: 'invalid_room' | 'invalid_multiplier' | 'betting_closed' | 'no_bet';
};
export interface WheelRefundSummary {
    refundedUsers: number;
    refundedAmount: number;
}
export declare function startWheelService(): void;
export declare function getWheelState(roomKey: string, userId: string): Promise<WheelStateResponse>;
export declare function placeWheelBet(params: {
    roomKey: string;
    userId: string;
    displayName: string;
    multiplier: number;
    amount: number;
}): Promise<PlaceWheelBetResult>;
export declare function cancelWheelBet(params: {
    roomKey: string;
    userId: string;
    displayName: string;
    multiplier: number;
}): Promise<CancelWheelBetResult>;
export declare function refundAllWheelBets(): Promise<WheelRefundSummary>;
export {};
//# sourceMappingURL=wheelService.d.ts.map