/**
 * Anthropic adapter for the LLMClient port.
 *
 * Uses fetch() against the Messages API — same transport pattern as the
 * existing grader. No SDK dependency. Centralizes retry, rate-limit handling,
 * cost accounting, and per-call telemetry tagging via `context.feature`.
 *
 * Anthropic does not have a first-class JSON mode like OpenAI. For
 * `completeStructured`, the adapter uses the API's top-level `system`
 * field to instruct the model to return JSON only (top-level system is
 * harder for user-controlled content in `prompt` to override than a
 * user-turn prefix), then strips any surrounding ``` fences before
 * parsing through the Zod schema (parse-don't-validate).
 *
 * Per `.claude/rules/eval-pipeline.md` and `.claude/rules/typescript.md`:
 * the adapter never reads `process.env`. Typed constructor args only.
 */
import { type LLMClient, type LLMCompleteArgs, type LLMCompleteStructuredArgs, type LLMCompletion, type LLMStructuredCompletion, type Logger } from "../../_vendor/ailf-core/index.d.ts";
import type { ModelPricing } from "./pricing.js";
import { type RetryPolicy } from "./retry.js";
export interface AnthropicLLMClientOptions {
    apiKey: string;
    baseUrl?: string;
    /** Pricing keyed by canonical model id (without `anthropic:` prefix or `messages:` segment). */
    pricing?: Record<string, ModelPricing>;
    retryPolicy?: Partial<RetryPolicy>;
    logger?: Logger;
    sleep?: (ms: number) => Promise<void>;
    rng?: () => number;
    /** API version header. Default "2023-06-01" — matches the existing grader. */
    apiVersion?: string;
}
export declare class AnthropicLLMClient implements LLMClient {
    private readonly apiKey;
    private readonly baseUrl;
    private readonly apiVersion;
    private readonly pricing;
    private readonly retryPolicy;
    private readonly logger?;
    private readonly sleep?;
    private readonly rng?;
    constructor(options: AnthropicLLMClientOptions);
    complete(args: LLMCompleteArgs): Promise<LLMCompletion>;
    completeStructured<T>(args: LLMCompleteStructuredArgs<T>): Promise<LLMStructuredCompletion<T>>;
    private callApi;
    private computeCost;
    private logTelemetry;
}
