import ws from 'ws'; import type { SocketAdapter, SocketAdapterAkalaEventMap } from '@akala/core'; import { AsyncTeardownManager, IsomorphicBuffer } from '@akala/core'; import { type AllEventKeys, type AllEvents, type EventArgs, type EventListener, type EventOptions, type EventReturnType, type Subscription } from '@akala/core'; /** * json-rpc-ws connection * * @constructor * @param {Socket} socket - web socket for this connection * @param {Object} parent - parent that controls this connection */ export default class WsSocketAdapter extends AsyncTeardownManager implements SocketAdapter { private socket; constructor(socket: ws); hasListener>(name: TKey): boolean; get definedEvents(): AllEventKeys[]; emit>(event: TEvent, ...args: EventArgs[TEvent]>): false | EventReturnType[TEvent]>; pipe(socket: SocketAdapter): void; get open(): boolean; close(): Promise; send(data: string | IsomorphicBuffer): Promise; off>(event: TEvent, handler: EventListener[TEvent]>): boolean; private readonly messageListeners; on>(event: TEvent, handler: EventListener[TEvent]>, options?: EventOptions[TEvent]>): Subscription; once>(event: TEvent, handler: EventListener[TEvent]>): Subscription; }