import Anthropic from "@anthropic-ai/sdk";
import { ModelModality } from "./types";
import { GenericClient, CompletionOptions, CompletionResponse, Tool, Message, EmbeddingOptions, EmbeddingResponse, AudioTranscriptionOptions, AudioTranscriptionResponse, AudioGenerationOptions, AudioGenerationResponse, ImageGenerationOptions, ImageGenerationResponse, VideoGenerationOptions, VideoGenerationResponse } from "./types";
type MessageParam = Anthropic.MessageParam;
type Usage = Anthropic.Usage;
export declare class GenericAnthropicClient implements GenericClient {
    private client;
    private apiKey?;
    constructor(apiKey?: string);
    setKey(apiKey: string): void;
    handleToolCaching(tools: Anthropic.Tool[], longTtl?: boolean): void;
    private cleanSchemaForAnthropic;
    transformTools(tools?: Tool[], longTtl?: boolean): Anthropic.Tool[];
    toBlockArray(content: MessageParam["content"]): Anthropic.Messages.ContentBlockParam[];
    combineMessages(messages: MessageParam[]): MessageParam[];
    cacheLastContent(message: MessageParam, longTtl?: boolean): void;
    handleClearingCache(messages: MessageParam[]): void;
    handleMessageCaching(groupedMessages: MessageParam[], longTtl?: boolean): void;
    tryParse(str: string): any;
    transformMessages(messages: Message[], longTtl?: boolean): MessageParam[];
    transformContent(message: Message): string | Anthropic.Messages.ContentBlockParam[];
    createChatCompletion(options: CompletionOptions): Promise<CompletionResponse>;
    pricesPerMillion(): Record<string, import("./pricing").CatalogModelPricing>;
    calculateCost(model: string, usage: Usage): number | undefined;
    getModels(modality?: ModelModality): Promise<{
        id: string;
    }[]>;
    createEmbedding(options: EmbeddingOptions): Promise<EmbeddingResponse>;
    createAudioTranscription(options: AudioTranscriptionOptions): Promise<AudioTranscriptionResponse>;
    getContextLimit(model: string): {
        contextLimit: number;
        threshold: number;
    } | undefined;
    createAudioGeneration(options: AudioGenerationOptions): Promise<AudioGenerationResponse>;
    createImageGeneration(options: ImageGenerationOptions): Promise<ImageGenerationResponse>;
    createVideoGeneration(options: VideoGenerationOptions): Promise<VideoGenerationResponse>;
}
export {};
