import { LlmProvider, type ChatResult, type ChatStreamChunk, type LlmMessage, type NormalizedOptions, type ProviderConfigBase } from './provider-base.js'; export interface AnthropicProviderConfig extends Omit { /** Base URL up to (but not including) `/v1/messages`. Defaults to * Anthropic's public endpoint. Override for Bedrock / Vertex / a * corporate gateway. */ baseUrl?: string; /** `anthropic-version` header value. Anthropic pins API behaviour to * this date string; bumping it can change response shapes. We * default to the latest stable as of 2026-05. */ apiVersion?: string; /** Extra headers merged into every request. `x-api-key` / * `anthropic-version` / `content-type` are set automatically and * cannot be overridden here. */ extraHeaders?: Record; /** Retries on transient (429 / 5xx). Default 1, same as OpenAI compat. */ retryOnTransient?: number; /** Display label for cost dashboard / logs. */ providerLabel?: string; } /** * Native Anthropic Messages API provider. * * The constructor takes the same shape as OpenAICompatProvider (caller * code stays uniform); the differences live entirely in the wire-format * helpers below. */ export declare class AnthropicProvider extends LlmProvider { private readonly baseUrl; private readonly apiVersion; private readonly extraHeaders; private readonly retryOnTransient; constructor(cfg: AnthropicProviderConfig); protected _callApi(messages: LlmMessage[], opts: NormalizedOptions, signal: AbortSignal): Promise; protected _callApiStream(messages: LlmMessage[], opts: NormalizedOptions, signal: AbortSignal): AsyncIterable; /** * Compose the Anthropic Messages body. Differences vs OpenAI: * - `system` is a top-level field, NOT a message * - `messages[*].content` may be a string OR a content-block array * - tool calls live inside assistant content as `{type:'tool_use',...}` * - tool results live inside user content as `{type:'tool_result',...}` * - `tools` use `input_schema` (we pass our ToolDef.parameters JSON * Schema directly — Anthropic accepts the same dialect) */ private _buildBody; private _postJson; /** * fetch + transient retry. Mirrors OpenAICompatProvider's logic on * purpose so the two providers feel the same to operators reading * logs. */ private _fetchWithRetry; } //# sourceMappingURL=anthropic-provider.d.ts.map