import { BaseProvider } from './base';
import { TextGenerationParams, TextGenerationResponse, ProviderOptions, ChatMessage } from '../types';
/**
 * Anthropic提供商特定选项
 */
export interface AnthropicOptions extends ProviderOptions {
    model?: string;
    anthropicVersion?: string;
    maxRetries?: number;
}
/**
 * Claude工具定义
 */
interface ClaudeTool {
    name: string;
    description?: string;
    input_schema: Record<string, any>;
}
/**
 * Claude多模态内容块类型
 */
interface ClaudeMultiModalParams {
    image?: {
        url?: string;
        base64Data?: string;
        mimeType?: string;
    };
    document?: {
        url?: string;
        base64Data?: string;
        mimeType?: string;
    };
}
/**
 * Anthropic Claude API实现
 * 支持文本生成、多模态输入、工具调用等
 */
export declare class AnthropicProvider extends BaseProvider {
    readonly name = "Anthropic";
    private model;
    private anthropicVersion;
    private maxRetries;
    /**
     * 创建Anthropic提供商实例
     */
    constructor(options?: AnthropicOptions);
    /**
     * @inheritdoc
     */
    protected getDefaultBaseUrl(): string;
    /**
     * @inheritdoc
     */
    protected validateApiKey(): void;
    /**
     * @inheritdoc
     */
    generateText(params: TextGenerationParams): Promise<TextGenerationResponse>;
    /**
     * 支持多模态输入的Claude对话
     */
    chatCompletion(params: {
        messages: ChatMessage[];
        model?: string;
        systemMessage?: string;
        maxTokens?: number;
        temperature?: number;
        topP?: number;
        tools?: ClaudeTool[];
        stream?: boolean;
    }): Promise<TextGenerationResponse>;
    /**
     * 创建流式输出的聊天会话
     */
    createStreamingChatCompletion(params: {
        messages: ChatMessage[];
        model?: string;
        systemMessage?: string;
        maxTokens?: number;
        temperature?: number;
        topP?: number;
        tools?: ClaudeTool[];
    }): Promise<ReadableStream<any>>;
    /**
     * 生成JSON格式响应
     */
    generateJSON(params: TextGenerationParams): Promise<any>;
    /**
     * 计算消息的token数量
     */
    countTokens(messages: ChatMessage[], systemMessage?: string): Promise<{
        input_tokens: number;
    }>;
    /**
     * 发送Claude API请求
     */
    private sendClaudeRequest;
    /**
     * 发送Claude流式API请求
     */
    private sendClaudeStreamRequest;
    /**
     * 从Claude内容块中提取文本
     */
    private extractTextFromContent;
    /**
     * 将文本带图像提示发送到Claude
     * 支持URL或Base64编码图像
     */
    generateTextWithImage(params: TextGenerationParams & ClaudeMultiModalParams): Promise<TextGenerationResponse>;
    /**
     * 将通用ChatMessage格式转换为Claude消息格式
     */
    private convertToCloudeMessages;
}
export {};
//# sourceMappingURL=anthropic.d.ts.map