import type { CompletionRequest, CompletionResult, ProviderId, SuccessfulRequestSnapshot } from "../types.js"; import { type ProviderStreamEventSink } from "./stream-events.js"; import { type ProviderKeyEvent } from "./key-rotation.js"; import { OperationUsageRecorder, type OperationUsageSnapshot } from "./operation-usage.js"; import { OperationLedger } from "./operation-ledger.js"; import { effortCandidatesFor } from "./routing/error-classification.js"; import { buildFallbackChain, getProvider, providerAuth } from "./routing/provider-selection.js"; export { providers } from "./routing/provider-selection.js"; export { buildFallbackChain, getProvider, providerAuth }; export { AggregateProviderError, formatProviderFailureForUser, } from "./routing/failure-report.js"; export { isEmptyCompletionError } from "./routing/error-classification.js"; export { effortCandidatesFor }; export declare const API_KEY_TOAST_KEY = "api-key-rotation"; export type ProviderKeyEventHandler = (event: ProviderKeyEvent) => void; export interface StreamWithProviderOptions { readonly onStatus?: ((message: string) => void) | undefined; readonly onKeyEvent?: ProviderKeyEventHandler | undefined; readonly onStreamEvent?: ProviderStreamEventSink | undefined; readonly attemptUsage?: OperationUsageRecorder | undefined; readonly operation?: OperationLedger | undefined; readonly adoptFallback?: boolean | undefined; readonly onOperationUsage?: ((snapshot: OperationUsageSnapshot) => void) | undefined; readonly maxRetries?: number | undefined; readonly singleDispatch?: boolean | undefined; readonly retryRateLimits?: boolean | undefined; readonly onSuccessfulRequest?: ((snapshot: SuccessfulRequestSnapshot) => void) | undefined; } export declare function completeWithProvider(request: CompletionRequest, options?: StreamWithProviderOptions): Promise; export declare function streamWithProvider(request: CompletionRequest, onToken: (token: string) => void, onStatusOrOptions?: ((message: string) => void) | StreamWithProviderOptions): Promise; export declare function pingProvider(providerId: ProviderId, secretOverride?: string): Promise;