/**
 * 百度文心一言模型提供商
 * 支持ERNIE系列模型的API调用
 */
import { ChineseLLMProvider, ModelConfig, ChatRequest, ChatResponse, StreamResponse, ModelInfo } from '../chinese-llm-provider';
import { Logger } from '../../../infra/logger';
/**
 * 百度文心模型列表
 */
export declare enum BaiduWenxinModel {
    ERNIE_BOT = "ernie-bot",// ERNIE-Bot
    ERNIE_BOT_TURBO = "ernie-bot-turbo",// ERNIE-Bot-turbo
    ERNIE_BOT_4 = "ernie-bot-4",// ERNIE-Bot 4.0
    ERNIE_SPEED = "ernie-speed",// ERNIE-Speed
    ERNIE_LITE = "ernie-lite",// ERNIE-Lite
    ERNIE_TINY = "ernie-tiny",// ERNIE-Tiny
    BLOOMZ_7B = "bloomz-7b",// BLOOMZ-7B
    LLAMA2_7B = "llama2-7b-chat",// Llama-2-7b-chat
    LLAMA2_13B = "llama2-13b-chat",// Llama-2-13b-chat
    LLAMA2_70B = "llama2-70b-chat",// Llama-2-70b-chat
    QIANFAN_BLOOMZ_7B = "qianfan-bloomz-7b-compressed",// 千帆BLOOMZ-7B
    QIANFAN_CHINESE_LLAMA2_7B = "qianfan-chinese-llama2-7b",// 千帆中文Llama2-7B
    CHATGLM2_6B_32K = "chatglm2-6b-32k",// ChatGLM2-6B-32K
    AQUILACHAT_7B = "aquilachat-7b"
}
/**
 * 百度文心一言提供商实现
 */
export declare class BaiduWenxinProvider extends ChineseLLMProvider {
    private httpClient;
    private accessToken?;
    private tokenExpireTime?;
    private readonly baseUrl;
    constructor(config: ModelConfig, logger: Logger);
    /**
     * 聊天补全
     */
    chat(request: ChatRequest): Promise<ChatResponse>;
    /**
     * 流式聊天补全
     */
    chatStream(request: ChatRequest, onChunk: (chunk: StreamResponse) => void): Promise<void>;
    /**
     * 验证API密钥
     */
    validateApiKey(): Promise<boolean>;
    /**
     * 获取模型信息
     */
    getModelInfo(): Promise<ModelInfo>;
    /**
     * 获取支持的模型列表
     */
    getSupportedModels(): string[];
    /**
     * 确保访问令牌有效
     */
    private ensureAccessToken;
    /**
     * 获取访问令牌
     */
    private getAccessToken;
    /**
     * 检查令牌是否过期
     */
    private isTokenExpired;
    /**
     * 获取模型端点
     */
    private getModelEndpoint;
    /**
     * 格式化消息为百度文心格式
     */
    private formatMessagesForBaidu;
    /**
     * 格式化响应
     */
    private formatResponse;
    /**
     * 格式化流式响应
     */
    private formatStreamResponse;
}
