/// <reference types="node" />
import { EventEmitter } from 'events';
export interface JsonRpcMessage {
    jsonrpc: '2.0';
    id?: string | number;
    method?: string;
    params?: any;
    result?: any;
    error?: {
        code: number;
        message: string;
        data?: any;
    };
}
export interface TransportOptions {
    timeout?: number;
    headers?: Record<string, string>;
    env?: Record<string, string>;
    quiet?: boolean;
}
export declare abstract class McpTransport extends EventEmitter {
    protected connected: boolean;
    protected options: TransportOptions;
    constructor(options?: TransportOptions);
    abstract connect(): Promise<void>;
    abstract send(message: JsonRpcMessage): Promise<void>;
    abstract disconnect(): Promise<void>;
    isConnected(): boolean;
}
