UNPKG

movex-core-util

Version:

Movex Core Util is the library of utilities for Movex

24 lines (23 loc) 1.54 kB
import type { Socket as ServerSocket } from 'socket.io'; import type { Socket as ClientSocket } from 'socket.io-client'; import type { EventMap } from 'typed-emitter'; import type { EventEmitter } from './EventEmitter'; import type { UnsubscribeFn } from '../core-types'; export type SocketIO = ServerSocket | ClientSocket; export declare class SocketIOEmitter<TEventMap extends EventMap, TSocketIO extends SocketIO = ServerSocket | ClientSocket> implements EventEmitter<TEventMap> { protected socket: TSocketIO; protected config: { waitForResponseMs: number; }; constructor(socket: TSocketIO, config?: { waitForResponseMs?: number; }); on<E extends keyof TEventMap>(event: E, listener: (p: Parameters<TEventMap[E]>[0], ack?: (r: ReturnType<TEventMap[E]>) => void) => void): this; off<E extends keyof TEventMap>(event: E, listener: (p: Parameters<TEventMap[E]>[0], ack?: (r: ReturnType<TEventMap[E]>) => void) => void): this; subscribe<E extends keyof TEventMap>(event: E, listener: (p: Parameters<TEventMap[E]>[0], ack?: (r: ReturnType<TEventMap[E]>) => void) => void): UnsubscribeFn; emit<E extends keyof TEventMap>(event: E, request: Parameters<TEventMap[E]>[0], acknowledgeCb?: (response: ReturnType<TEventMap[E]>) => void): boolean; emitAndAcknowledge<E extends keyof TEventMap>(event: E, request: Parameters<TEventMap[E]>[0]): Promise<ReturnType<TEventMap[E]>>; onConnect(fn: () => void): () => void; onDisconnect(fn: () => void): () => void; disconnect(): void; }