import { GameState, TimeoutAction, TimeBankAction } from "@pokertools/types"; /** * Handle TIMEOUT action * - Folds player if they have bet to call * - Checks if allowed, otherwise folds * - Marks player as sitting out */ export declare function handleTimeout(state: GameState, action: TimeoutAction): GameState; /** * Handle TIME_BANK action * - Deducts time from player's time bank * - Keeps action on same player * * TIME BANK DEDUCTION POLICY: * This implementation uses a "pay-per-activation" model where: * - Each time bank activation deducts a fixed amount (default: 10 seconds) * - Player receives the full deduction amount as additional time * - If remaining time bank is less than the deduction, it is fully consumed * - This prevents players from getting "free" time when they have < 10s remaining * * Example scenarios: * - Player has 30s, activates time bank → 20s remaining, gets 10s additional time * - Player has 5s, activates time bank → 0s remaining, gets 10s additional time * - Player has 0s, cannot activate time bank → forced timeout/fold * * Alternative design consideration: * If you want "time-as-resource" (only deduct what you use), you would need: * - Track time used per activation in the UI layer * - Deduct actual time consumed rather than fixed amount * - Return unused time if action is made before deduction expires */ export declare function handleTimeBank(state: GameState, action: TimeBankAction): GameState;