import type { ProviderId } from "../types.js"; export declare const HARD_COMPACT_TOKEN_BUDGET = 200000; export declare const DEFAULT_SOFT_COMPACT_TOKEN_BUDGET = 200000; export declare const DEFAULT_FS_PASSTHROUGH_CAP_CHARS = 64000; export declare const DEFAULT_FREE_TIER_FAIL_THRESHOLD = 2; export declare const ADAPTIVE_MAX_TOKENS_TOOL_STEP = 24576; export declare const ADAPTIVE_MAX_TOKENS_LIGHT = 12288; export declare const ADAPTIVE_MAX_TOKENS_FLOOR = 8192; export declare const LEGACY_MAX_TOKENS = 32768; export declare const MAX_STEP_COMPLETION_TOKENS = 65536; export declare const MAX_OUTPUT_BUDGET_CONTINUATIONS = 1; export interface ReliabilityPolicy { readonly softEarlyCompact: boolean; readonly softCompactTokenBudget: number; readonly hardCompactTokenBudget: number; readonly fsPassthroughCapChars: number; readonly adaptiveMaxTokens: boolean; readonly freeTierContextGuard: boolean; readonly freeTierFailThreshold: number; readonly toolResultDedup: boolean; readonly slimNativePrompt: boolean; } export declare function getReliabilityPolicy(): ReliabilityPolicy; export declare function autoCompactTriggerTokens(policy?: ReliabilityPolicy, target?: { provider?: ProviderId | undefined; model?: string | undefined; contextLimitTokens?: number | undefined; }): number; export declare function resolveStepMaxTokens(input: { nativeToolsActive: boolean; toolsAttached: boolean; recoveryNudge?: boolean | undefined; truncationDepth?: number | undefined; thinkingEnabled?: boolean | undefined; minimumTokens?: number | undefined; outputTokenLimit?: number | undefined; policy?: ReliabilityPolicy | undefined; }): number; export declare function outputBudgetWasExhausted(input: { finishReason?: string | undefined; completionTokens?: number | undefined; requestedMaxTokens: number; }): boolean; export declare function isFreeCloudProvider(provider: ProviderId): boolean; export declare function freeTierGuardNotices(input: { provider: ProviderId; consecutiveFailures: number; policy?: ReliabilityPolicy | undefined; }): string[]; export declare function hashToolResultContent(content: string): string; export declare function dedupeToolContextOutput(input: { content: string; toolName: string; artifactPath?: string | undefined; seenHashes: Map; policy?: ReliabilityPolicy | undefined; }): { content: string; deduped: boolean; hash: string; };