export type LlmRetryConfig = { delayMs: number; maxMs: number; }; export type LlmRetryDeps = { delayMs?: number; maxMs?: number; sleep?: (ms: number) => Promise; now?: () => number; fetchFn?: typeof fetch; log?: (msg: string) => void; }; export declare function resolveLlmRetryConfig(): LlmRetryConfig; export declare function isChimphandsLlmRetryEnabled(): boolean; export declare function isRetryableLlmFailure(status: number): boolean; export declare function isRetryableLlmNetworkError(err: unknown): boolean; /** Retry upstream fetch until success, non-retryable status, or deadline. */ export declare function fetchUpstreamWithRetry(url: string, init: RequestInit, deps?: LlmRetryDeps): Promise; export type LlmRetryProxyHandle = { baseUrl: string; stop: () => Promise; }; /** Start a localhost proxy that forwards to FeatureService /v1 with retry. */ export declare function startLlmRetryProxy(upstreamLlmBase: string, deps?: LlmRetryDeps): Promise;