import { EventEmitter } from 'events';
interface HttpClientConfig {
    baseURL: string;
    timeout: number;
    maxRetries: number;
    retryDelay: number;
    maxConcurrentRequests: number;
}
interface HttpClientMetrics {
    totalRequests: number;
    successfulRequests: number;
    failedRequests: number;
    averageResponseTime: number;
    lastHealthCheck: Date;
    connectionErrors: number;
}
export declare class HttpClient extends EventEmitter {
    private client;
    private config;
    private metrics;
    private semaphore;
    private isHealthy;
    private healthCheckInterval?;
    constructor(config: HttpClientConfig);
    private createAxiosInstance;
    private setupEventHandlers;
    start(): Promise<void>;
    private startPeriodicHealthCheck;
    stop(): Promise<void>;
    private acquireSemaphore;
    private releaseSemaphore;
    private makeRequest;
    listAvailableModels(provider?: string): Promise<any>;
    getModelInfo(modelId: string): Promise<any>;
    chatWithModel(params: {
        modelId: string;
        message: string;
        enableWebSearch?: boolean;
        temperature?: number;
        maxTokens?: number;
        conversationHistory?: any[];
    }): Promise<any>;
    compareModels(params: {
        modelIds: string[];
        message: string;
        enableWebSearch?: boolean;
        temperature?: number;
        maxTokens?: number;
    }): Promise<any>;
    brains(params: {
        question: string;
        enableWebSearch?: boolean;
        temperature?: number;
        maxTokens?: number;
    }): Promise<any>;
    private updateMetrics;
    healthCheck(): Promise<boolean>;
    getMetrics(): HttpClientMetrics;
    getStatus(): any;
    isClientHealthy(): boolean;
}
export declare const httpClient: HttpClient;
export {};
//# sourceMappingURL=httpClient.d.ts.map