import { GptClient, ToolOption } from './GptClient';
import { JSONSchema7 } from 'json-schema';
import { GptMessage, AssistantMessage, StructuredOutputMessage, ProposedToolCallsMessage } from '../models/GptMessage';
import { AnthropicConfig } from '../models/GptConfig';
/**
 * A GPT client implemented using the Anthropic API
 * @see https://docs.anthropic.com/en/api/messages
 */
export declare class AnthropicGptClient extends GptClient {
    private readonly anthropicConfig;
    private static readonly API_URL;
    private static readonly REQUEST_TIMEOUT_MILLISECONDS;
    private static readonly API_KEY_HEADER_NAME;
    private static readonly API_VERSION_HEADER_NAME;
    private static readonly API_VERSION_HEADER_VALUE;
    private static readonly CONTENT_TYPE_HEADER_VALUE;
    private static readonly MAX_TOKENS;
    private readonly headers;
    /**
     * Create a new instance.
     */
    constructor(anthropicConfig: AnthropicConfig);
    ping(): Promise<void>;
    getMessage(messages: GptMessage[]): Promise<AssistantMessage>;
    getStructuredOutput(messages: GptMessage[], jsonSchema: JSONSchema7): Promise<StructuredOutputMessage>;
    getToolCalls(messages: GptMessage[], tools: ToolOption[]): Promise<ProposedToolCallsMessage>;
    private mapErrorResponseToDonobuException;
    private makeRequest;
    /**
     * Merges adjacent user messages because Anthropic will reject requests that do not delicately
     * flip-flop between "user" and "assistant" roles.
     */
    private static shenanigansUserMessageMerge;
    private static chatRequestMessageFromGptMessage;
    private static toolChoiceFromTool;
}
//# sourceMappingURL=AnthropicGptClient.d.ts.map