import type { MCPClientConfig, MCPClientState, MCPContentBlock, MCPInitializeResult, MCPResource, MCPResourceTemplate, MCPToolDefinition, MCPToolResult } from '../../types/connector/index.js';
import type { MCPClientId } from '../../types/ids/index.js';
export declare class MCPClient {
    readonly id: MCPClientId;
    private transport;
    private status;
    private serverInfo?;
    private serverCapabilities?;
    private connectedAt?;
    private error?;
    private pendingRequests;
    private nextRequestId;
    private notificationHandlers;
    private log;
    private readonly config;
    constructor(config: MCPClientConfig);
    connect(): Promise<MCPInitializeResult>;
    disconnect(): Promise<void>;
    isConnected(): boolean;
    getState(): MCPClientState;
    listTools(): Promise<MCPToolDefinition[]>;
    callTool(name: string, args?: Record<string, unknown>): Promise<MCPToolResult>;
    listResources(): Promise<MCPResource[]>;
    readResource(uri: string): Promise<MCPContentBlock[]>;
    listResourceTemplates(): Promise<MCPResourceTemplate[]>;
    onNotification(handler: (method: string, params?: Record<string, unknown>) => void): void;
    private createTransport;
    private request;
    private notify;
    private handleMessage;
    private requireConnected;
}
//# sourceMappingURL=client.d.ts.map