/// import { EventEmitter } from "events"; import StrictEventEmitter from "strict-event-emitter-types"; import { Multiaddr } from "multiaddr"; import { IPacket } from "../packet"; export interface ISocketAddr { port: number; address: string; } export declare type SocketAddrStr = string; export interface IRemoteInfo { address: string; family: "IPv4" | "IPv6"; port: number; size: number; } export interface ITransportEvents { packet: (src: Multiaddr, packet: IPacket) => void; decodeError: (err: Error, src: Multiaddr) => void; } export declare type TransportEventEmitter = StrictEventEmitter; export interface ITransportService extends TransportEventEmitter { multiaddr: Multiaddr; start(): Promise; stop(): Promise; send(to: Multiaddr, toId: string, packet: IPacket): Promise; }