import { GptClient, ToolOption } from './GptClient';
import { JSONSchema7 } from 'json-schema';
import { GptMessage, AssistantMessage, StructuredOutputMessage, ProposedToolCallsMessage } from '../models/GptMessage';
import { AnthropicAwsBedrockConfig } from '../models/GptConfig';
/**
 * A GPT client implemented using AWS Bedrock for Anthropic models.
 * @see https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude.html
 */
export declare class AnthropicAwsBedrockGptClient extends GptClient {
    private readonly anthropicAwsBedrockConfig;
    private static readonly MAX_TOKENS;
    private readonly bedrockClient;
    /**
     * Create a new instance.
     */
    constructor(anthropicAwsBedrockConfig: AnthropicAwsBedrockConfig);
    ping(): Promise<void>;
    getMessage(messages: GptMessage[]): Promise<AssistantMessage>;
    getStructuredOutput(messages: GptMessage[], jsonSchema: JSONSchema7): Promise<StructuredOutputMessage>;
    getToolCalls(messages: GptMessage[], tools: ToolOption[]): Promise<ProposedToolCallsMessage>;
    /**
     * Extract system prompt from messages
     */
    private extractSystemPrompt;
    /**
     * Maps AWS SDK errors to our application-specific exceptions
     */
    private mapErrorToDonobuException;
    /**
     * 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=AnthropicAwsBedrockGptClient.d.ts.map