import { ConnectionDetails, WebSocketOptions, WsToken, Wsc } from "./types.mjs"; import { request } from "./rest.mjs"; import Subscription from "./subscription.mjs"; import { EventEmitter } from "node:events"; import SdkExtension from "@rc-ex/core/SdkExtension"; import WS from "isomorphic-ws"; import RingCentral from "@rc-ex/core"; import SubscriptionInfo from "@rc-ex/core/definitions/SubscriptionInfo"; //#region src/index.d.ts declare enum Events { autoRecoverSuccess = "autoRecoverSuccess", autoRecoverFailed = "autoRecoverFailed", autoRecoverError = "autoRecoverError", newWebSocketObject = "newWebSocketObject", newWsc = "newWsc", connectionReady = "connectionReady" } declare class WebSocketExtension extends SdkExtension { eventEmitter: EventEmitter; options: WebSocketOptions; rc: RingCentral; wsToken?: WsToken; wsTokenExpiresAt: number; ws: WS; connectionDetails: ConnectionDetails; wsc?: Wsc; subscription?: Subscription; intervalHandle?: NodeJS.Timeout; recoverTimestamp?: number; pingServerHandle?: NodeJS.Timeout; _recoverPromise?: Promise; _connectPromise?: Promise; request: typeof request; constructor(options?: WebSocketOptions); disable(): void; install(rc: RingCentral): Promise; recover(): Promise; _recover(): Promise; pingServer(): Promise; connect(recoverSession?: boolean): Promise; _connect(recoverSession?: boolean): Promise; revoke(keepInterval?: boolean): Promise; subscribe(eventFilters: string[], callback: (event: {}) => void, cache?: SubscriptionInfo | undefined | null): Promise; } //#endregion export { Events, WebSocketExtension as default };