import type { BackgroundTask } from "./types"; import type { ConcurrencyManager } from "./concurrency"; import type { OpencodeClient, QueueItem } from "./constants"; import { log, readConnectedProvidersCache, readProviderModelsCache } from "../../shared"; import { shouldRetryError, getNextFallback, hasMoreFallbacks, selectFallbackProvider } from "../../shared/model-error-classifier"; import { transformModelForProvider } from "../../shared/provider-model-id-transform"; export declare class TeamModeFallbackError extends Error { constructor(message: string); } export type FallbackRetryHandlerDeps = { log: typeof log; readProviderModelsCache: typeof readProviderModelsCache; readConnectedProvidersCache: typeof readConnectedProvidersCache; shouldRetryError: typeof shouldRetryError; getNextFallback: typeof getNextFallback; hasMoreFallbacks: typeof hasMoreFallbacks; selectFallbackProvider: typeof selectFallbackProvider; transformModelForProvider: typeof transformModelForProvider; }; export declare function tryFallbackRetry(args: { task: BackgroundTask; errorInfo: { name?: string; message?: string; statusCode?: number; }; source: string; concurrencyManager: ConcurrencyManager; client: OpencodeClient; idleDeferralTimers: Map>; queuesByKey: Map; processKey: (key: string) => void; onRetrying?: (details: { task: BackgroundTask; source: string; previousSessionID?: string; failedModel?: string; failedError?: string; nextModel: string; }) => void; deps?: Partial; }): Promise;