import { InitRequest, RPCMessage, RPCMessages } from '../proto/api'; import { IWitnessSocket, Logger, RPCEvent, RPCEventMap } from '../types'; export declare class WitnessSocket implements IWitnessSocket { protected socket: WebSocket; metadata: InitRequest; logger: Logger; private eventTarget; isInitialised: boolean; constructor(socket: WebSocket, metadata: InitRequest, logger: Logger); get isOpen(): boolean; get isClosed(): boolean; sendMessage(...msgs: Partial[]): Promise; dispatchRPCEvent(type: K, data: RPCEventMap[K]): void; addEventListener(type: K, listener: (data: RPCEvent) => void): void; removeEventListener(type: K, listener: (data: RPCEvent) => void): void; terminateConnection(err?: Error): Promise; }