import type { OpenAICompatOptions } from './openai-compat.js'; import type { AnthropicCompatOptions } from './anthropic-compat.js'; export interface BuiltinProviderDefinition { readonly id: string; readonly label: string; readonly envVars: readonly string[]; readonly serviceNames?: readonly string[] | undefined; readonly aliases?: readonly string[] | undefined; readonly subscriptionProviderId?: string | undefined; } export interface BuiltinOpenAICompatDefinition extends BuiltinProviderDefinition { readonly kind: 'openai-compat'; readonly baseURL: string; readonly defaultModel: string; readonly models: readonly string[]; /** Date the static `models` list was last verified against the backend. */ readonly modelsAsOf: string; /** * 'openai-endpoint' (default) = live discovery from GET {baseURL}/models; * 'none' = the backend has no listing API (each 'none' is verified against * the backend's documentation, never assumed). */ readonly modelListing?: 'openai-endpoint' | 'none' | undefined; /** Override the model-listing URL when it is not {baseURL}/models. */ readonly modelListingUrl?: string | undefined; readonly embeddingModel?: string | undefined; readonly reasoningFormat?: OpenAICompatOptions['reasoningFormat'] | undefined; readonly suppressedModelRegistryKeys?: readonly string[] | undefined; readonly streamProtocol?: string | undefined; readonly defaultHeaders?: Record | undefined; readonly allowAnonymous?: boolean | undefined; readonly anonymousConfigured?: boolean | undefined; readonly anonymousDetail?: string | undefined; } export interface BuiltinAnthropicCompatDefinition extends BuiltinProviderDefinition { readonly kind: 'anthropic-compat'; readonly baseURL: string; readonly defaultModel: string; readonly models: readonly string[]; /** Date the static `models` list was last verified against the backend. */ readonly modelsAsOf: string; /** * 'anthropic-endpoint' (default) = live discovery from GET {baseURL}/models; * 'none' = the backend has no listing API (each 'none' is verified against * the backend's documentation, never assumed). */ readonly modelListing?: 'anthropic-endpoint' | 'none' | undefined; /** Override the model-listing URL when it is not {baseURL}/models. */ readonly modelListingUrl?: string | undefined; readonly defaultHeaders?: Record | undefined; readonly authHeaderMode?: AnthropicCompatOptions['authHeaderMode'] | undefined; readonly streamProtocol?: string | undefined; readonly allowAnonymous?: boolean | undefined; readonly anonymousConfigured?: boolean | undefined; readonly anonymousDetail?: string | undefined; } export type BuiltinCompatDefinition = BuiltinOpenAICompatDefinition | BuiltinAnthropicCompatDefinition; export declare const BUILTIN_PROVIDER_ENV_KEYS: Record; export declare function getBuiltinProviderEnvVars(providerId: string): readonly string[]; /** * Reasoning-format audit, 2026-07-25: every entry below without an explicit * `reasoningFormat` sends no reasoning parameter at all. That is deliberate, * not an oversight, a format is only declared for a backend whose own current * documentation was read and cited at the entry. The rest stay silent because * guessing a field name earns a provider-side 400 on every turn, which is worse * than the setting having no effect. Re-audit an entry by reading its docs and * adding a cited `reasoningFormat`. */ export declare const BUILTIN_COMPAT_PROVIDERS: readonly BuiltinCompatDefinition[]; //# sourceMappingURL=builtin-catalog.d.ts.map