import { Observable } from 'rxjs'; export interface WsMessageHandler { message: T; callback: (...args: any[]) => Observable | Promise; } export interface WebSocketAdapter { create(port: number, options?: TOptions): TServer; bindClientConnect(server: TServer, callback: Function): any; bindClientDisconnect?(client: TClient, callback: Function): any; bindMessageHandlers(client: TClient, handlers: WsMessageHandler[], transform: (data: any) => Observable): any; close(server: TServer): any; }