export declare const POKER_BUY_IN = 1000;
export declare const POKER_SMALL_BLIND = 20;
export declare const POKER_BIG_BLIND = 40;
export declare const POKER_RAISE_STEP = 40;
export declare const POKER_MAX_SEATS = 5;
export type PokerSuit = '♠' | '♥' | '♦' | '♣';
export type PokerRank = 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;
export type PokerStage = 'lobby' | 'preflop' | 'flop' | 'turn' | 'river' | 'showdown' | 'settled';
export type PokerAction = 'fold' | 'check' | 'call' | 'raise';
export interface PokerCard {
    rank: PokerRank;
    suit: PokerSuit;
}
export interface PokerSeatState {
    seatIndex: number;
    userId: string;
    displayName: string;
    avatarUrl: string | null;
    stack: number;
    contribution: number;
    roundContribution: number;
    cards: PokerCard[];
    folded: boolean;
    allIn: boolean;
    isDealer: boolean;
    isSmallBlind: boolean;
    isBigBlind: boolean;
    acted: boolean;
    joinedAt: number;
    cardsRevealed: boolean;
    handLabel: string | null;
    pendingLeave: boolean;
}
export interface PokerHandState {
    id: string;
    stage: PokerStage;
    community: PokerCard[];
    dealerSeatIndex: number;
    currentTurnSeatIndex: number;
    currentBet: number;
    pot: number;
    requiredSeatIds: string[];
    actionEndsAt: string | null;
    revealAt: string | null;
    showdownWinners: string[];
    winnerSummary: string | null;
    winnerHandLabel: string | null;
}
export interface PokerTableState {
    roomKey: string;
    tableKey: string;
    seats: Array<PokerSeatState | null>;
    hand: PokerHandState | null;
    nextHandStartsAt: string | null;
    activePlayersCount: number;
    buyIn: number;
}
export interface PokerRoomState {
    roomKey: string;
    assignedTableKey: string | null;
    table: PokerTableState | null;
    balance: number;
}
export type PokerJoinResult = {
    success: true;
    room: PokerRoomState;
} | {
    success: false;
    reason: 'insufficient_balance' | 'invalid_room';
    balance?: number;
};
export type PokerActionResult = {
    success: true;
    room: PokerRoomState;
} | {
    success: false;
    reason: 'not_in_table' | 'invalid_action' | 'not_your_turn' | 'insufficient_balance' | 'round_closed';
};
export interface PokerRefundSummary {
    refundedPlayers: number;
    refundedAmount: number;
}
export declare function startPokerService(): void;
export declare function getPokerState(roomKey: string, userId: string): Promise<PokerRoomState>;
export declare function joinPoker(params: {
    roomKey: string;
    userId: string;
    displayName: string;
    avatarUrl: string | null;
}): Promise<PokerJoinResult>;
export declare function pokerAction(params: {
    roomKey: string;
    userId: string;
    action: PokerAction;
    amount?: number;
}): Promise<PokerActionResult>;
export declare function leavePoker(params: {
    roomKey: string;
    userId: string;
}): Promise<void>;
export declare function refundAllPokerTables(): Promise<PokerRefundSummary>;
//# sourceMappingURL=pokerService.d.ts.map