import type { CompletionRequest, ProviderId, SuccessfulRequestSnapshot } from "../../types.js"; import type { ProviderKeyEvent } from "../key-rotation.js"; import type { LlmProvider } from "../provider.js"; import type { ProviderKeyEventHandler } from "../router.js"; type EmitKey = (event: ProviderKeyEvent) => void; export declare function makeKeyEmitter(onStatus?: (message: string) => void, onKeyEvent?: ProviderKeyEventHandler): EmitKey; export declare function runWithKeyRotation(opts: { providerId: ProviderId; provider: LlmProvider; request: CompletionRequest; model: string; emitKey: EmitKey; mode: "complete" | "stream"; initialAttemptReason: "initial" | "fallback"; onToken?: ((token: string) => void) | undefined; onStatus?: ((message: string) => void) | undefined; maxRetries?: number | undefined; singleDispatch?: boolean | undefined; retryRateLimits?: boolean | undefined; onSuccessfulRequest?: ((snapshot: SuccessfulRequestSnapshot) => void) | undefined; }): Promise; export {};