import type { CallToolResult, Tool } from '@modelcontextprotocol/sdk/types.js';
import { WebSocketConnectionManager } from '../task_managers/websocket.js';
import { BaseConnector } from './base.js';
export interface WebSocketConnectorOptions {
    authToken?: string;
    headers?: Record<string, string>;
}
export declare class WebSocketConnector extends BaseConnector {
    private readonly url;
    private readonly headers;
    protected connectionManager: WebSocketConnectionManager | null;
    private ws;
    private receiverTask;
    private pending;
    protected toolsCache: Tool[] | null;
    constructor(url: string, opts?: WebSocketConnectorOptions);
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    private sendRequest;
    private receiveLoop;
    private rejectAll;
    initialize(): Promise<Record<string, any>>;
    listTools(): Promise<Tool[]>;
    callTool(name: string, args: Record<string, any>): Promise<CallToolResult>;
    listResources(): Promise<any>;
    readResource(uri: string): Promise<{
        content: ArrayBuffer;
        mimeType: string;
    }>;
    request(method: string, params?: Record<string, any> | null): Promise<any>;
    get tools(): Tool[];
    protected cleanupResources(): Promise<void>;
}
//# sourceMappingURL=websocket.d.ts.map