import type { Dialogue } from './types.js';
export declare const TIMEOUT_RETRY_INPUT_TOKEN_LIMIT = 20000;
export declare const TIMEOUT_RETRY_MIN_REPLAY_COST_LIMIT_USD = 0.05;
export type TimeoutRetrySkipReason = 'estimated_cost' | 'input_tokens';
export interface TimeoutRetryDecision {
    retry: boolean;
    estimatedInputTokens: number;
    estimatedReplayCostUsd: number;
    reason?: TimeoutRetrySkipReason;
}
/**
 * A timeout retry re-sends the entire conversation. For long paid contexts,
 * that can cost more than the original useful work and hit the turn budget
 * before the model gets another chance to finish.
 */
export declare function evaluateTimeoutRetry(history: Dialogue[], model: string, opts?: {
    inputTokenLimit?: number;
    minReplayCostLimitUsd?: number;
}): TimeoutRetryDecision;
