export interface MCPToolDef {
    name: string;
    description?: string;
    inputSchema: Record<string, unknown>;
}
export interface MCPServerConfig {
    command: string;
    args?: string[];
    env?: Record<string, string>;
    enabled?: boolean;
}
export declare class MCPClient {
    private process;
    private requestId;
    private pending;
    private buffer;
    private _tools;
    private config;
    private _connected;
    constructor(config: MCPServerConfig);
    get connected(): boolean;
    private send;
    private request;
    connect(): Promise<void>;
    private processBuffer;
    listTools(): Promise<MCPToolDef[]>;
    callTool(name: string, args: Record<string, unknown>): Promise<{
        content: Array<{
            type: string;
            text?: string;
        }>;
        isError?: boolean;
    }>;
    shutdown(): Promise<void>;
}
export declare class MCPServerManager {
    private clients;
    addServer(name: string, config: MCPServerConfig): MCPClient;
    getServer(name: string): MCPClient | undefined;
    connectAll(): Promise<void>;
    shutdownAll(): Promise<void>;
    getAllClients(): Map<string, MCPClient>;
}
//# sourceMappingURL=client.d.ts.map