import type { OhMyOpenCodeConfig } from "../config"; import type { ModelFallbackHook } from "../hooks/model-fallback/hook"; import type { PluginEventContext } from "./event-types"; export type FallbackContinuationContext = { agentName?: string; providerID?: string; dedupeProviderID?: string; modelID?: string; }; type FallbackContinuationDedupeState = { modelKeys: Set; providerModelKeys: Set; providerlessModelKeys: Set; }; export declare function applyUserConfiguredFallbackChain(modelFallback: Pick | null | undefined, sessionID: string, agentName: string, currentProviderID: string, pluginConfig: OhMyOpenCodeConfig): void; export declare function createModelFallbackContinuationController(args: { pluginConfig: OhMyOpenCodeConfig; pluginContext: PluginEventContext; lastKnownModelBySession: Map; continuationsInFlight: Set; lastDispatchedContinuationKeys: Map; }): { autoContinueAfterFallback: (sessionID: string, source: string, fallbackContext?: FallbackContinuationContext) => Promise; resolveFallbackProviderID: (sessionID: string, providerHint?: string) => string; shouldSkipFallbackContinuation: (sessionID: string, source: string, fallbackContext?: FallbackContinuationContext) => boolean; }; export {};