import { WebSocket } from "ws"; import { AdapterAbstract, TypeId, TypeJRPCRequestBody, TypeJRPCResponse, TypeMethodParam } from "../../core"; import { WebsocketAdapterConfigInterface } from "./interfaces"; export * from "./interfaces"; declare type TypeQueue = { [id: string | number]: (value: any) => void; }; /** * WebSocket Client Adapter for JSONRPC Client * * * @author Mahsum UREBE * @licence MIT * * @example * // Create adapter for WS Connection * const adapter = new WebSocket({ * protocol: "ws", * hostname: "localhost", * port: 3000, * }); * * @example * // Create adapter for WSs Connection * const adapter = new WebSocket({ * protocol: "wss", * hostname: "foo.bar", * port: 443, * }); */ export declare class WebsocketAdapter> extends AdapterAbstract { protected readonly url: string; protected readonly config?: WebsocketAdapterConfigInterface; /** * WebSocket handler * * @type {WebSocket} * @protected */ protected handler: WebSocket; /** * Request Queue * * @type {object} * @protected */ protected requestQueue: TypeQueue; constructor(url: string, config?: WebsocketAdapterConfigInterface); /** * Request to server * * @param {object|object[]} body * * @abstract * @return Promise Returns the smoothed response output. */ request(body: TypeJRPCRequestBody): Promise | TypeJRPCResponse[] | void>; /** * Connect to server * * @return {Promise} Returns a void Promise */ connect(): Promise; private processRequest; private processMessage; /** * Destroy server connection * * @return {Promise} Returns a void Promise */ destroy(): Promise | void; }