import { EventEmitter } from 'events';
import { ProcessStatus, MCPClientMetrics, MCPToolCallResponse } from '../types/mcp.js';
export declare class MCPClient extends EventEmitter {
    private process;
    private pendingRequests;
    private status;
    private metrics;
    private buffer;
    private isConnected;
    private startTime;
    constructor();
    private setupEventHandlers;
    start(): Promise<void>;
    private spawnProcess;
    private handleStdoutData;
    private handleMessage;
    private handleProcessExit;
    private attemptRestart;
    sendRequest(method: string, params?: any): Promise<any>;
    listTools(): Promise<any>;
    callTool(name: string, arguments_: Record<string, any>): Promise<MCPToolCallResponse>;
    listAvailableModels(provider?: 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>;
    getModelInfo(modelId: string): Promise<any>;
    brains(params: {
        question: string;
        enableWebSearch?: boolean;
        temperature?: number;
        maxTokens?: number;
    }): Promise<any>;
    private updateMetrics;
    stop(): Promise<void>;
    getStatus(): ProcessStatus;
    getMetrics(): MCPClientMetrics;
    isHealthy(): boolean;
    healthCheck(): Promise<boolean>;
}
export declare const mcpClient: MCPClient;
//# sourceMappingURL=mcpClient.d.ts.map