/** * [WHO]: getEnvApiKey, stream, streamSimple, complete, completeSimple, RetryOptions * [FROM]: Depends on ./api-registry.js, providers/register-builtins.js, and utils/http-proxy.js * [TO]: Consumed by core/lib/ai/src/index.ts * [HERE]: core/lib/ai/src/stream.ts - provider streaming entrypoint with lazy provider resolution, retry, abort, and factory-error event handling */ import "./providers/register-builtins.js"; import "./utils/http-proxy.js"; import type { Api, AssistantMessage, Context, Model, ProviderStreamOptions, SimpleStreamOptions } from "./types.js"; import { AssistantMessageEventStream } from "./utils/event-stream.js"; export { getEnvApiKey } from "./env-api-keys.js"; export interface RetryOptions { /** Maximum number of retry attempts (default: 3). Ignored when persistentRetry is true. */ maxRetries?: number; /** Base delay in ms for exponential backoff (default: 1000) */ baseDelayMs?: number; /** Maximum delay cap in ms (default: 30000, or 300000 for persistentRetry) */ maxDelayMs?: number; /** Whether to add jitter to avoid thundering herd (default: true) */ jitter?: boolean; /** * Persistent/unattended retry mode for 429/529 overload errors. * When true, retries indefinitely with capped backoff and periodic heartbeat yields. * Only applies to overload errors (429, 529); other retriable errors still respect maxRetries. */ persistentRetry?: boolean; /** Heartbeat interval in ms during persistent retry to prevent idle timeouts (default: 30000) */ heartbeatMs?: number; } export declare function stream(model: Model, context: Context, options?: ProviderStreamOptions): AssistantMessageEventStream; export declare function complete(model: Model, context: Context, options?: ProviderStreamOptions): Promise; export declare function streamSimple(model: Model, context: Context, options?: SimpleStreamOptions): AssistantMessageEventStream; export declare function completeSimple(model: Model, context: Context, options?: SimpleStreamOptions): Promise;