/**
 * CodeWhisperer 主客户端 - 重构版本
 * 支持动态切换缓冲式和实时流式实现
 * 项目所有者: Jason Zhang
 */
import { CodeWhispererStreamingConfig } from './config/streaming-config';
import { AnthropicRequest } from './types';
export declare class CodeWhispererClient {
    private client;
    private configManager;
    private metrics;
    private configChangeListener;
    private failureCount;
    private readonly maxFailuresBeforeFallback;
    constructor(config?: CodeWhispererStreamingConfig);
    /**
     * 处理流式请求 - 统一接口
     */
    handleStreamRequest(anthropicReq: AnthropicRequest, writeSSE: (event: string, data: any) => void, onError: (message: string, error: Error) => void): Promise<void>;
    /**
     * 处理非流式请求 - 统一接口
     */
    handleNonStreamRequest(anthropicReq: AnthropicRequest): Promise<any>;
    /**
     * 动态切换实现
     */
    switchImplementation(implementation: 'buffered' | 'realtime'): void;
    /**
     * 获取当前客户端类型
     */
    getClientType(): 'buffered' | 'realtime';
    /**
     * 获取当前配置
     */
    getCurrentConfig(): CodeWhispererStreamingConfig;
    /**
     * 更新配置
     */
    updateConfig(newConfig: Partial<CodeWhispererStreamingConfig>): void;
    /**
     * 健康检查
     */
    healthCheck(): Promise<{
        healthy: boolean;
        type: string;
        message?: string;
        implementation: string;
        config?: CodeWhispererStreamingConfig;
    }>;
    /**
     * 获取性能报告
     */
    getPerformanceReport(): {
        currentActiveRequests: number;
        timestamp: number;
        totalRequests: number;
        successfulRequests: number;
        failedRequests: number;
        avgDuration: number;
        avgLatency: number;
        memoryPeak: number;
        implementationStats: {
            buffered: {
                count: number;
                avgDuration: number;
                successRate: number;
            };
            realtime: {
                count: number;
                avgDuration: number;
                successRate: number;
            };
        };
    };
    /**
     * 获取实现对比报告
     */
    getImplementationComparison(): {
        buffered: any;
        realtime: any;
        comparison: {
            durationImprovement: number;
            successRateImprovement: number;
            recommendation: "realtime" | "buffered" | "mixed";
        };
    };
    /**
     * 重置性能指标
     */
    resetPerformanceMetrics(): void;
    /**
     * 判断是否需要故障转移
     */
    private shouldFallback;
    /**
     * 处理流式请求故障转移
     */
    private handleFallback;
    /**
     * 处理非流式请求故障转移
     */
    private handleNonStreamFallback;
    /**
     * 设置配置变更监听器
     */
    private setupConfigChangeListener;
    /**
     * 销毁客户端
     */
    destroy(): void;
}
export default CodeWhispererClient;
//# sourceMappingURL=client.d.ts.map