import CIPClient from '../cip/CIPClient'; import { ESignalTypes, IMappedEvent } from '../utils/ContractMapper'; import MessagesBuffer from '../messages-buffer/MessagesBuffer'; import CH5Event from '../types/CH5Event'; declare class WebSocketClient { private readonly url; private _socket; private _reconnectTimeout; private _cipClient; private _cipPacketsBuffer; private _ch5EventsBuffer; private _attemptReconnect; private _isReconnecting; constructor(url: string, reconnectTimeout?: number); set cipClient(data: CIPClient); get cipClient(): CIPClient; set reconnectTimeout(data: number); get reconnectTimeout(): number; set cipPacketsBuffer(data: MessagesBuffer); get cipPacketsBuffer(): MessagesBuffer; set ch5EventsBuffer(data: MessagesBuffer); get ch5EventsBuffer(): MessagesBuffer; get isReconnecting(): boolean; set isReconnecting(flag: boolean); get socket(): WebSocket; set socket(data: WebSocket); get connected(): boolean; tryReconnect(): void; connectAfterDelay(delayInMs: number): void; authenticate(): void; connect(): void; private initializeListeners; private onConnect; private onClose; private static onError; private onMessage; /** * @see https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout#Maximum_delay_value */ private increaseReconnectTimeout; private removeEventListeners; disconnect(reason?: string): void; /** * Send the CIPPacket to the Crestron Control System in a bufferred manner * @param packet */ sendCIPPacketWithBuffer(packet: Uint8Array): void; /** * Send the CIPPacket to the Crestron Control System ignoring the buffer * @param packet */ sendCIPPacketWithoutBuffer(packet: Uint8Array): void; /** * Callback for handling the change of the CIP connection status * @param connected */ onCIPConnectionStatusChanged(connected: boolean): void; /** * Receives the data packet as an object, converts it and sends it to the CCS * @param joinEvent */ sendJoinEvent(eventType: ESignalTypes, joinEvent: IMappedEvent, value: string | number | boolean): void; private startCipBufferProcessing; sendEventToNative(ch5Event: CH5Event): void; private startCh5BufferProcessing; closeWebSocket(attemptReconnect: boolean): void; } export default WebSocketClient;