///
import { EventEmitter } from 'events';
import type { SocketAddress } from '@chainsafe/discv5';
import type { IPMode, ITransportEvents, ITransportService } from '@chainsafe/discv5/lib/transport/types.js';
import type { IPacket } from '@chainsafe/discv5/packet';
import type { ENR } from '@chainsafe/enr';
import type { Multiaddr } from '@multiformats/multiaddr';
import type StrictEventEmitter from 'strict-event-emitter-types/types/src';
interface WebSocketTransportEvents extends ITransportEvents {
multiAddr: (src: Multiaddr) => void;
}
export declare type WSTransportEventEmitter = StrictEventEmitter;
declare const WebSocketTransportService_base: new () => WSTransportEventEmitter;
/**
* This class is responsible for encoding outgoing Packets and decoding incoming Packets over Websockets
*/
export declare class WebSocketTransportService extends WebSocketTransportService_base implements ITransportService {
multiaddr: Multiaddr;
private socket;
private srcId;
private log;
ipMode: IPMode;
bindAddrs: Multiaddr[];
constructor(multiaddr: Multiaddr, srcId: string, proxyAddress: string);
start(): Promise;
stop(): Promise;
send(to: Multiaddr, toId: string, packet: IPacket): Promise;
handleIncoming: (data: Uint8Array) => void;
getContactableAddr(enr: ENR): SocketAddress | undefined;
}
export {};
//# sourceMappingURL=websockets.d.ts.map