@voicenter-team/events-sdk 0.0.12 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.eslintrc.cjs +17 -0
  2. package/.github/workflows/main.yml +16 -0
  3. package/.idea/VoicenterEventsSDK.iml +12 -0
  4. package/.idea/git_toolbox_prj.xml +15 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  6. package/.idea/jsLibraryMappings.xml +6 -0
  7. package/.idea/jsLinters/eslint.xml +7 -0
  8. package/.idea/modules.xml +8 -0
  9. package/.idea/vcs.xml +6 -0
  10. package/.nvmrc +1 -0
  11. package/TODELETE_TEMP/events.json +69122 -0
  12. package/TODELETE_TEMP/temphelper.cjs +101 -0
  13. package/dist/index.d.ts +689 -11
  14. package/dist/voicenter-events-sdk.cjs.js +10 -10
  15. package/dist/voicenter-events-sdk.cjs.js.map +1 -1
  16. package/dist/voicenter-events-sdk.es.js +1856 -1818
  17. package/dist/voicenter-events-sdk.es.js.map +1 -1
  18. package/dist/voicenter-events-sdk.iife.js +17 -17
  19. package/dist/voicenter-events-sdk.iife.js.map +1 -1
  20. package/dist/voicenter-events-sdk.umd.js +16 -16
  21. package/dist/voicenter-events-sdk.umd.js.map +1 -1
  22. package/docs/package-lock.json +3820 -0
  23. package/docs/package.json +25 -0
  24. package/docs/src/.vuepress/client.js +8 -0
  25. package/docs/src/.vuepress/components/Demo.vue +191 -0
  26. package/docs/src/.vuepress/config.js +60 -0
  27. package/docs/src/.vuepress/public/favicon.ico +0 -0
  28. package/docs/src/.vuepress/public/images/logo.png +0 -0
  29. package/docs/src/.vuepress/styles/index.scss +0 -0
  30. package/docs/src/.vuepress/styles/index.styl +8 -0
  31. package/docs/src/.vuepress/styles/palette.styl +10 -0
  32. package/docs/src/demo.md +7 -0
  33. package/docs/src/index.md +4 -0
  34. package/interface.ts +261 -0
  35. package/jest.config.js +11 -0
  36. package/package.json +1 -4
  37. package/src/classes/auth/auth.class.ts +272 -0
  38. package/src/classes/auth/auth.urls.ts +8 -0
  39. package/src/classes/events-sdk/events-sdk-default-options.ts +60 -0
  40. package/src/classes/events-sdk/events-sdk.class.ts +250 -0
  41. package/src/classes/events-sdk/events-sdk.test.ts +9 -0
  42. package/src/classes/events-sdk/events-sdk.types.ts +71 -0
  43. package/src/classes/socket-io/socket-io.class.ts +172 -0
  44. package/src/classes/socket-io/versions/index.ts +52 -0
  45. package/src/classes/socket-io/versions/v1_3_7.js +2083 -0
  46. package/src/classes/storage/storage.class.ts +43 -0
  47. package/src/enum/auth.enum.ts +4 -0
  48. package/src/enum/events.enum.ts +98 -0
  49. package/src/index.ts +15 -0
  50. package/{dist → src}/types/auth.d.ts +12 -8
  51. package/{dist → src}/types/events.common.d.ts +1 -1
  52. package/{dist → src}/types/events.d.ts +1 -1
  53. package/{dist → src}/types/socket.d.ts +1 -1
  54. package/swagger/generated/Swagger.json +1 -0
  55. package/swagger/index.js +60 -0
  56. package/swagger/package.json +21 -0
  57. package/swagger/scripts/update-swagger-json.js +53 -0
  58. package/swagger/yarn.lock +2100 -0
  59. package/tsconfig.json +47 -0
  60. package/vite.config.ts +45 -0
  61. package/dist/classes/auth/auth.class.d.ts +0 -20
  62. package/dist/classes/auth/auth.urls.d.ts +0 -4
  63. package/dist/classes/events-sdk/events-sdk-default-options.d.ts +0 -2
  64. package/dist/classes/events-sdk/events-sdk.class.d.ts +0 -35
  65. package/dist/classes/events-sdk/events-sdk.test.d.ts +0 -1
  66. package/dist/classes/events-sdk/events-sdk.types.d.ts +0 -63
  67. package/dist/classes/socket-io/socket-io.class.d.ts +0 -23
  68. package/dist/classes/socket-io/versions/index.d.ts +0 -8
  69. package/dist/classes/storage/storage.class.d.ts +0 -6
  70. package/dist/enum/auth.enum.d.ts +0 -4
  71. package/dist/enum/events.enum.d.ts +0 -77
  72. /package/{dist → src}/classes/socket-io/socket-io.d.ts +0 -0
  73. /package/{dist → src}/types/listeners.d.ts +0 -0
  74. /package/{dist → src}/types/public-api.d.ts +0 -0
package/dist/index.d.ts CHANGED
@@ -1,11 +1,689 @@
1
- import EventsSdkClass from './classes/events-sdk/events-sdk.class';
2
- import { EventsEnum } from './enum/events.enum';
3
- export type * from './types/auth';
4
- export type * from './types/events.common';
5
- export type * from './types/events';
6
- export type * from './types/listeners';
7
- export type * from './types/public-api';
8
- export type * from './types/socket';
9
- export type * from './classes/events-sdk/events-sdk.types';
10
- export { EventsEnum };
11
- export default EventsSdkClass;
1
+ import { DebouncedFuncLeading } from 'lodash';
2
+ import { EventsEnum as EventsEnum_3 } from 'enum/events.enum';
3
+ import { io } from 'socket.io-client';
4
+ import { Socket as Socket_2 } from 'socket.io-client';
5
+
6
+ export declare type ActiveRoomListener = (event: number | undefined) => void
7
+
8
+ export declare type addRoomListener = (value: string) => void
9
+
10
+ /**
11
+ * Data structure for all dialers status event.
12
+ */
13
+ export declare interface AllDialersStatusEvent extends CommonEventProperties {
14
+ // Array of Dialer objects
15
+ dialers: Dialer[]
16
+ }
17
+
18
+ /**
19
+ * Data structure for all extension status event.
20
+ */
21
+ export declare interface AllExtensionStatusEvent extends CommonEventProperties {
22
+ // Array of Extension objects
23
+ extensions: Extension[]
24
+ }
25
+
26
+ /**
27
+ * Data structure for all users status event.
28
+ */
29
+ export declare interface AllUsersStatusEvent extends CommonEventProperties {
30
+ // Array of User objects
31
+ users: User[]
32
+ }
33
+
34
+ declare class AuthClass {
35
+ private readonly eventsSdkClass;
36
+ constructor(eventsSdkClass: EventsSdkClass);
37
+ private delay;
38
+ lastLoginTimestamp: number | undefined;
39
+ token: string | undefined;
40
+ private storageKey;
41
+ login(options: EventsSdkOptions): Promise<void>;
42
+ updateLastLoginTimestamp(): void;
43
+ private checkLoginStatus;
44
+ private userLoginFunction;
45
+ private onLoginResponse;
46
+ handleTokenExpiry(): void;
47
+ private externalLogin;
48
+ private getSettings;
49
+ private refreshToken;
50
+ }
51
+
52
+ export declare type CallAddingProgressListener = (callId: string | undefined) => void
53
+
54
+ declare enum CallStatusEnum {
55
+ RINGING = "Ringing",
56
+ TALKING = "Talking",
57
+ DIALING = "Dialing",
58
+ HOLD = "Hold"
59
+ }
60
+
61
+ declare enum CallTypeEnum {
62
+ INCOMING = "Incoming",
63
+ OUTGOING = "Outgoing"
64
+ }
65
+
66
+ export declare type changeActiveCallsListener = (event: { [key: string]: string }) => void
67
+
68
+ export declare type changeActiveInputMediaDeviceListener = (event: string) => void
69
+
70
+ export declare type changeActiveOutputMediaDeviceListener = (event: string) => void
71
+
72
+ export declare type changeCallStatusListener = (event: { [key: string]: number }) => void
73
+
74
+ export declare type changeIsDNDListener = (value: boolean) => void
75
+
76
+ export declare type changeIsMutedListener = (value: boolean) => void
77
+
78
+ export declare type changeMuteWhenJoinListener = (value: boolean) => void
79
+
80
+ /**
81
+ * Base structure for all event types, containing common properties.
82
+ */
83
+ export declare interface CommonEventProperties {
84
+ // Error code, 0 indicates no error
85
+ errorCode?: number
86
+ // Description of the error, "Ok" indicates successful connection
87
+ errorDesc?: string
88
+ // Server time at the moment of the event
89
+ serverTime: number
90
+ // Difference in time between server and client
91
+ serverTimeOffset: number
92
+ }
93
+
94
+ export declare interface CustomData {
95
+ DoNotCallMeStatus?: string,
96
+ DoNotCallMeStatusCode?: DoNotCallMeStatusCodeEnum,
97
+ DoNotCallMeTokenName?: string,
98
+ DoNotCallMetransactionId?: string,
99
+ IsDoNotCallMe?: string
100
+ }
101
+
102
+ export declare interface Dialer {
103
+ campaignID: number,
104
+ name: string,
105
+ typeID: number,
106
+ type: DialerType,
107
+ code: string,
108
+ calls: unknown,
109
+ statistics: unknown
110
+ }
111
+
112
+ /**
113
+ * Data structure for dialer event.
114
+ */
115
+ export declare interface DialerEvent extends CommonEventProperties {
116
+ data: Dialer
117
+ eventName: EventNameEnum.DIALER
118
+ //reason: ExtensionEventReasonEnum // TODO: do research for dialer 'reason' prop
119
+ telephonyServerTime?: number
120
+ callerID?: string
121
+ ivrUniqueId?: string
122
+ dialStatus?: string
123
+ //cause?: ExtensionHangupCauseEnum // TODO: do research for dialer 'cause' prop
124
+ }
125
+
126
+ declare enum DialerType {
127
+ AUTOMATIC = "Automatic",
128
+ IVR = "IVR"
129
+ }
130
+
131
+ declare enum DirectionEnum {
132
+ INCOMING = "Incoming",
133
+ OUTGOING = "Outgoing",
134
+ SPY = "Spy",
135
+ CLICK2CALL = "Click2call"
136
+ }
137
+
138
+ declare enum DoNotCallMeStatusCodeEnum {
139
+ RESPONSE_FROM_API_VALID = "RESPONSE_FROM_API_VALID",
140
+ RESPONSE_FROM_API_INVALID = "RESPONSE_FROM_API_INVALID"
141
+ }
142
+
143
+ /**
144
+ * This type defines a map where each key is an event name, and the value is an array of callback functions associated with that event.
145
+ * This structure is used to manage event listeners for different events
146
+ */
147
+ export declare type EventCallbackListenersMap = {
148
+ [K in EventTypeNames]: Array<EventSpecificCallback<K>>
149
+ }
150
+
151
+ /**
152
+ * Defines a registry of callback functions for each event type.
153
+ * Each key is an event type name, and the value is a function that takes the specific event data type as an argument.
154
+ * This registry is used to manage and invoke event-specific callbacks.
155
+ */
156
+ export declare type EventCallbackRegistry = {
157
+ [K in EventTypeNames]: (data: EventDataMap[K]) => void
158
+ }
159
+
160
+ /**
161
+ * Mapping of event names to their respective data structures.
162
+ */
163
+ export declare interface EventDataMap {
164
+ [EventsEnum_2.ALL_EXTENSION_STATUS]: AllExtensionStatusEvent
165
+ [EventsEnum_2.ALL_DIALER_STATUS]: AllDialersStatusEvent
166
+ [EventsEnum_2.ALL_USERS_STATUS]: AllUsersStatusEvent
167
+ [EventsEnum_2.QUEUE_EVENT]: QueueEvent
168
+ [EventsEnum_2.EXTENSION_EVENT]: ExtensionEvent
169
+ [EventsEnum_2.DIALER_EVENT]: DialerEvent
170
+ [EventsEnum_2.LOGIN_SUCCESS]: LoginSuccessEvent
171
+ [EventsEnum_2.LOGIN_STATUS]: LoginStatusEvent
172
+ [EventsEnum_2.KEEP_ALIVE_RESPONSE]: KeepAliveResponseEvent
173
+ [EventsEnum_2.ONLINE_STATUS_EVENT]: OnlineStatusEvent
174
+ }
175
+
176
+ /**
177
+ * All the eventNames that can be received from the server. Exists only in EXTENSION_EVENT and QueueEvent
178
+ */
179
+ declare enum EventNameEnum {
180
+ EXTENSION = 'extension',
181
+ QUEUE = 'queue',
182
+ DIALER = 'dialer',
183
+ }
184
+
185
+ /**
186
+ * All events that can be received from the server.
187
+ */
188
+ export declare enum EventsEnum {
189
+ ALL_DIALER_STATUS = "AllDialersStatus",
190
+ ALL_EXTENSION_STATUS = "AllExtensionsStatus",
191
+ ALL_USERS_STATUS = "AllUsersStatus",
192
+ CONNECT = "connect",
193
+ DISCONNECT = "disconnect",
194
+ EXTENSION_EVENT = "ExtensionEvent",
195
+ KEEP_ALIVE = "keepalive",
196
+ KEEP_ALIVE_RESPONSE = "keepaliveResponse",
197
+ LOGIN_STATUS = "loginStatus",
198
+ LOGIN_SUCCESS = "loginSuccess",
199
+ QUEUE_EVENT = "QueueEvent",
200
+ ONLINE_STATUS_EVENT = "onlineStatusEvent",
201
+ DIALER_EVENT = "DialerEvent"
202
+ }
203
+
204
+ /**
205
+ * All events that can be received from the server.
206
+ */
207
+ declare enum EventsEnum_2 {
208
+ ALL_DIALER_STATUS = 'AllDialersStatus',
209
+ ALL_EXTENSION_STATUS = 'AllExtensionsStatus',
210
+ ALL_USERS_STATUS = 'AllUsersStatus',
211
+ CONNECT = 'connect',
212
+ DISCONNECT = 'disconnect',
213
+ EXTENSION_EVENT = 'ExtensionEvent',
214
+ KEEP_ALIVE = 'keepalive',
215
+ KEEP_ALIVE_RESPONSE = 'keepaliveResponse',
216
+ // This type of event will be sent only in case of a successful connection.
217
+ // The event describes the list of monitored queues on this active connection.
218
+ // The list of monitored queues will only be sent if the login connection was made with account credentials or account token.
219
+ // If the login connection type is by user credentials, only the user’s extension assigned queues will return.
220
+ LOGIN_STATUS = 'loginStatus',
221
+ // This type of event will be sent in the initial login connection request in case of a successful connection only.
222
+ // In case of wrong username or password or token, you will receive a 401 (“Unauthorized”) or 500 (“Unexpected token”) http error.
223
+ LOGIN_SUCCESS = 'loginSuccess',
224
+ QUEUE_EVENT = 'QueueEvent',
225
+ ONLINE_STATUS_EVENT = 'onlineStatusEvent',
226
+ DIALER_EVENT = 'DialerEvent',
227
+ }
228
+
229
+ /**
230
+ * This is a generic type for callback functions used in event handling.
231
+ * It takes a generic event name and defines a callback function that receives wrapped socket event data for that specific event.
232
+ */
233
+ export declare type EventSpecificCallback<T extends EventTypeNames> = (data: WrappedSocketEvent<T>) => void
234
+
235
+ declare class EventsSdkClass {
236
+ constructor(options: EventsSdkOptions);
237
+ private argumentOptions;
238
+ readonly options: EventsSdkOptions;
239
+ servers: Server[];
240
+ server: Server;
241
+ socket: SocketTyped | undefined;
242
+ authClass: AuthClass;
243
+ socketIoClass: SocketIoClass;
244
+ reconnectOptions: ReconnectOptions;
245
+ retryConnection: DebouncedFuncLeading<(server?: ServerParameter, skipLogin?: boolean) => void>;
246
+ private listeners;
247
+ private allListeners;
248
+ on<T extends EventTypeNames>(event: T, callback: EventSpecificCallback<T>): void;
249
+ on(event: '*', callback: (data: GenericEventWrapper) => void): void;
250
+ off<T extends EventTypeNames>(event: T, callback: EventSpecificCallback<T>): void;
251
+ off(event: '*', callback: (data: GenericEventWrapper) => void): void;
252
+ emit<T extends EventTypeNames>(event: T, data: EventTypeData<T>): void;
253
+ connect(server?: ServerParameter, skipLogin?: boolean): void;
254
+ disconnect(): void;
255
+ clearKeepAliveInterval(): void;
256
+ private findCurrentServer;
257
+ private findNextAvailableServer;
258
+ private findMaxPriorityServer;
259
+ private findMinPriorityServer;
260
+ getServerWithHighestPriority(servers: Server[]): Server;
261
+ init(): Promise<boolean>;
262
+ private getServers;
263
+ }
264
+ export default EventsSdkClass;
265
+
266
+ export declare interface EventsSdkOptions {
267
+ isNewStack?: boolean;
268
+ servers: Server[];
269
+ loginUrl: string;
270
+ fallbackServer: Server;
271
+ refreshTokenUrl: string;
272
+ refreshToken?: string;
273
+ token: string;
274
+ tokenExpiry?: Date;
275
+ loginType: LoginType;
276
+ forceNew?: boolean;
277
+ reconnectionDelay: number;
278
+ reconnectionDelayMax?: number;
279
+ maxReconnectAttempts: number;
280
+ timeout?: number;
281
+ keepAliveTimeout: number;
282
+ idleInterval?: number;
283
+ protocol: string;
284
+ transports?: string[];
285
+ upgrade?: boolean;
286
+ serverFetchStrategy?: string;
287
+ serverType?: number;
288
+ useLogger?: boolean;
289
+ loggerSocketConnection?: string;
290
+ loggerServer?: string;
291
+ loggerConfig?: LoggerConfig;
292
+ loggerConnectOptions?: LoggerConnectOptions;
293
+ email: string;
294
+ password: string;
295
+ username: string;
296
+ }
297
+
298
+ export declare type EventTypeData<T extends EventsEnum_2> = EventDataMap[T]
299
+
300
+ /**
301
+ * Represents the set of all possible event type names as keys from the EventDataMap.
302
+ * This type is used to define event listeners and handlers.
303
+ */
304
+ export declare type EventTypeNames = keyof EventDataMap
305
+
306
+ /**
307
+ * Represents Event Types in Enum
308
+ */
309
+ export declare enum EventTypesEnum {
310
+ ALL_DIALERS_STATUS = 'AllDialersStatus',
311
+ ALL_EXTENSION_STATUS = 'AllExtensionsStatus',
312
+ CLOSE = 'closeme',
313
+ CONNECT = 'connect',
314
+ CONNECT_ERROR = 'connect_error',
315
+ CONNECT_TIMEOUT = 'connect_timeout',
316
+ DISCONNECT = 'disconnect',
317
+ DIALER_EVENT = 'DialerEvent',
318
+ DIALERS_UPDATED = 'DialersUpdated',
319
+ ERROR = 'error',
320
+ EXTENSION_EVENT = 'ExtensionEvent',
321
+ EXTENSION_UPDATED = 'ExtensionsUpdated',
322
+ KEEP_ALIVE = 'keepalive',
323
+ KEEP_ALIVE_RESPONSE = 'keepaliveResponse',
324
+ LOGIN = 'login',
325
+ LOGIN_ACCOUNT = 'loginAccount',
326
+ LOGIN_CODE = 'loginUserCode',
327
+ LOGIN_RESPONSE = 'loginResponse',
328
+ LOGIN_STATUS = 'loginStatus',
329
+ LOGIN_USER = 'loginUser',
330
+ PONG = 'pong',
331
+ QUEUE_EVENT = 'QueueEvent',
332
+ QUEUES_UPDATED = 'QueuesUpdated',
333
+ RECONNECT = 'reconnect',
334
+ RECONNECT_ATTEMPT = 'reconnect_attempt',
335
+ RECONNECT_ERROR = 'reconnect_error',
336
+ RECONNECT_FAILED = 'reconnect_failed',
337
+ RECONNECTING = 'reconnecting',
338
+ RESYNC = 'resync'
339
+ }
340
+
341
+ /**
342
+ * This type represents a mapping of listener event names to their corresponding wrapped socket event data structures.
343
+ * Each key is an event name, and the value is the wrapped socket event data for that event
344
+ */
345
+ export declare type EventWrappedSocketDataMap = {
346
+ [K in EventTypeNames]: WrappedSocketEvent<K>
347
+ }
348
+
349
+ export declare interface Extension {
350
+ calls: ExtensionCall[],
351
+ userID: number,
352
+ userName: string,
353
+ number: number,
354
+ extenUser: string,
355
+ accountID: number,
356
+ topAccountID: number,
357
+ summery: Summery,
358
+ onlineUserID: number,
359
+ representative: number,
360
+ representativeStatus: number,
361
+ lastCallEventEpoch: number,
362
+ lastAnsweredCallEventEpoch: number,
363
+ lastHangupCallEpoch: number,
364
+ representativeUpdated: number,
365
+ peerStatus: unknown,
366
+ currentCall?: ExtensionCall,
367
+ }
368
+
369
+ export declare interface ExtensionCall {
370
+ callStarted: number,
371
+ calldurationinterval: number,
372
+ callAnswered: number,
373
+ answered: number,
374
+ callername: string,
375
+ callerphone: string,
376
+ outgoingcallername?: string,
377
+ outgoingcallerphone?: string,
378
+ callstatus: CallStatusEnum,
379
+ customdata: CustomData,
380
+ direction: DirectionEnum,
381
+ ivrid: string,
382
+ recording: Recording,
383
+ did: string,
384
+ relatedIvrUniqueIDs?: string[],
385
+ callType?: CallTypeEnum,
386
+ ip: string,
387
+ isInternal: boolean
388
+ blcServerID: number,
389
+ isOpensips: boolean,
390
+ channel: string,
391
+ channel2: string,
392
+ queueID?: number,
393
+ isSpyed?: boolean,
394
+ blcServerId?: number,
395
+ originalCallerID?: string,
396
+ originalCallerName?: string,
397
+ actualDialedNumber?: number
398
+ }
399
+
400
+ /**
401
+ * Data structure for extension event.
402
+ */
403
+ export declare interface ExtensionEvent extends CommonEventProperties {
404
+ data: Extension
405
+ eventName: EventNameEnum.EXTENSION
406
+ reason: ExtensionEventReasonEnum
407
+ telephonyServerTime?: number
408
+ callerID?: string
409
+ ivrUniqueId?: string
410
+ dialStatus?: string
411
+ cause?: ExtensionHangupCauseEnum
412
+ }
413
+
414
+ /**
415
+ * All the reasons for the extension event, e.g. a new call is ringing or dialing from an extension.
416
+ */
417
+ declare enum ExtensionEventReasonEnum {
418
+ // A new call is ringing or dialing from an extension.
419
+ NEW_CALL = 'NEWCALL',
420
+ // A call was answered at an extension.
421
+ ANSWER = 'ANSWER',
422
+ // A call was placed on hold.
423
+ HOLD = 'HOLD',
424
+ // A call is no longer on hold.
425
+ UNHOLD = 'UNHOLD',
426
+ // When a call was ended. It is not necessarily means that the call was answered.
427
+ HANGUP = 'HANGUP',
428
+ // When the extension online user updated his\her user status(Login, Break, Logout, etc.)
429
+ USER_STATUS_UPDATE = 'userStatusUpdate',
430
+ }
431
+
432
+ declare enum ExtensionHangupCauseEnum {
433
+ NORMAL_HANGUP = 'Normal hangup',
434
+ USER_BUSY = 'User busy',
435
+ CALL_REJECTED = 'Call Rejected',
436
+ UNALLOCATED_NUMBER = 'Unallocated (unassigned) number',
437
+ UNKNOWN = 'Unknown',
438
+ NO_USER_RESPONDING = 'No user responding',
439
+ USER_ALERTING = 'User alerting, no answer',
440
+ ANSWERED_ELSEWHERE = 'Answered elsewhere'
441
+ }
442
+
443
+ export declare interface ExternalLoginNewStackResponseData {
444
+ AccessToken: string,
445
+ RefreshToken: string
446
+ }
447
+
448
+ export declare interface ExternalLoginOldStackResponseData {
449
+ Socket: Socket,
450
+ }
451
+
452
+ export declare interface ExternalLoginRequestBody {
453
+ identityType: LoginType,
454
+ username?: string,
455
+ password?: string,
456
+ token?: string
457
+ }
458
+
459
+ export declare interface ExternalLoginResponse<T> {
460
+ StatusCode: number,
461
+ Status: string,
462
+ Data: T
463
+ }
464
+
465
+ /**
466
+ * A generic type that represents the structure of any event data wrapped in a socket event format.
467
+ * This type is used in the handling of all event types, providing a consistent structure for event data processing.
468
+ */
469
+ export declare type GenericEventWrapper = EventWrappedSocketDataMap[EventTypeNames]
470
+
471
+ /**
472
+ * Data structure for keep alive response event.
473
+ */
474
+ export declare interface KeepAliveResponseEvent extends CommonEventProperties {
475
+ isOk: boolean
476
+ }
477
+
478
+ export declare type ListenerCallbackFnType<T extends ListenersKeyType> = OpenSIPSEventMap[T]
479
+
480
+ export declare type ListenersCallbackFnType = OpenSIPSEventMap[ListenersKeyType]
481
+
482
+ export declare type ListenersKeyType = keyof OpenSIPSEventMap
483
+
484
+ export declare interface LoggerConfig {
485
+ logToConsole?: boolean;
486
+ overloadGlobalConsole?: boolean;
487
+ namespace?: string;
488
+ socketEmitInterval?: number;
489
+ }
490
+
491
+ export declare interface LoggerConnectOptions {
492
+ reconnection?: boolean;
493
+ reconnectionDelay?: number;
494
+ reconnectionAttempts?: number;
495
+ perMessageDeflate?: boolean;
496
+ upgrade?: boolean;
497
+ transports?: string[];
498
+ debug?: boolean;
499
+ }
500
+
501
+ export declare interface LoginSessionData extends Settings, ExternalLoginNewStackResponseData, Socket {}
502
+
503
+ export declare interface LoginSessionPayload {
504
+ token: string,
505
+ email: string,
506
+ password: string
507
+ }
508
+
509
+ /**
510
+ * Data structure for login status event.
511
+ */
512
+ export declare interface LoginStatusEvent extends CommonEventProperties {
513
+ // Array of Queue objects
514
+ queues: Queue[]
515
+ }
516
+
517
+ export declare type LoginSuccessEvent = CommonEventProperties
518
+
519
+ declare enum LoginType {
520
+ USER = "User",
521
+ TOKEN = "Token"
522
+ }
523
+
524
+ export declare interface OnlineStatusEvent {
525
+ isSocketConnected: boolean
526
+ }
527
+
528
+ export declare interface OpenSIPSEventMap {
529
+ ready: readyListener
530
+ changeActiveCalls: changeActiveCallsListener
531
+ callConfirmed: TestEventListener
532
+ currentActiveRoomChanged: ActiveRoomListener
533
+ callAddingInProgressChanged: CallAddingProgressListener
534
+ roomDeleted: RoomDeletedListener
535
+ changeActiveInputMediaDevice: changeActiveInputMediaDeviceListener
536
+ changeActiveOutputMediaDevice: changeActiveOutputMediaDeviceListener
537
+ changeMuteWhenJoin: changeMuteWhenJoinListener
538
+ changeIsDND: changeIsDNDListener
539
+ changeIsMuted: changeIsMutedListener
540
+ addRoom: addRoomListener
541
+ updateRoom: updateRoomListener
542
+ removeRoom: removeRoomListener
543
+ changeCallStatus: changeCallStatusListener
544
+ }
545
+
546
+ export declare interface Queue {
547
+ QueueID: number,
548
+ QueueName: string,
549
+ Calls: QueueCall[],
550
+ UserId?: number,
551
+ DistributorID?: number,
552
+ IsDistributedQueue?: boolean,
553
+ AnsweredAgent?: string,
554
+ }
555
+
556
+ export declare interface QueueCall {
557
+ CallerID: string,
558
+ CallerName: string,
559
+ IvrUniqueID: string,
560
+ JoinTimeStamp: number,
561
+ calldurationinterval: number,
562
+ ivrid: string,
563
+ isDistributedQueue?: boolean
564
+ }
565
+
566
+ /**
567
+ * Data structure for queue event.
568
+ */
569
+ export declare interface QueueEvent extends CommonEventProperties {
570
+ eventName: EventNameEnum.QUEUE,
571
+ reason: QueueEventReasonEnum,
572
+ telephonyServerTime: number,
573
+ ivrUniqueId: string,
574
+ data: Queue
575
+ }
576
+
577
+ declare enum QueueEventReasonEnum {
578
+ ANSWER = 'ANSWER',
579
+ ABANDONED = 'ABANDONED',
580
+ EXIT = 'EXIT',
581
+ JOIN = 'JOIN'
582
+ }
583
+
584
+ export declare type readyListener = (value: boolean) => void
585
+
586
+ export declare interface ReconnectOptions {
587
+ retryCount: number;
588
+ maxReconnectAttempts: number;
589
+ reconnectionDelay: number;
590
+ minReconnectionDelay: number;
591
+ maxReconnectionDelay: number;
592
+ }
593
+
594
+ export declare interface Recording {
595
+ Filename: string,
596
+ Options: string,
597
+ ApproximateURL: string,
598
+ IsMuted: number
599
+ }
600
+
601
+ export declare type removeRoomListener = (value: string) => void
602
+
603
+ export declare type RoomDeletedListener = (roomId: number) => void
604
+
605
+ export declare interface Server {
606
+ Priority: number;
607
+ Domain: string;
608
+ URLID: number;
609
+ Version: string;
610
+ }
611
+
612
+ export declare enum ServerParameter {
613
+ DEFAULT = "default",
614
+ NEXT = "next",
615
+ PREVIOUS = "previous"
616
+ }
617
+
618
+ export declare enum ServerTypesEnum {
619
+ DEFAULT = 1,
620
+ CHROME_EXTENSION = 2
621
+ }
622
+
623
+ export declare interface Settings {
624
+ IdentityCode: string,
625
+ IdentityCodeExpiry: Date,
626
+ PersonID: number,
627
+ PersonType: number,
628
+ ExtensionMonitorID: number,
629
+ MonitorList: Server[]
630
+ }
631
+
632
+ export declare interface Socket {
633
+ Client: string,
634
+ PersonId: number,
635
+ RefreshToken: string,
636
+ RefreshTokenExpiry: Date,
637
+ Token: string,
638
+ TokenExpiry: Date,
639
+ URLList: string[],
640
+ Url: string,
641
+ Version: string
642
+ }
643
+
644
+ declare class SocketIoClass {
645
+ private readonly eventsSdkClass;
646
+ constructor(eventsSdkClass: EventsSdkClass);
647
+ io: SocketTyped | undefined;
648
+ ioFunction: TypedSocketIo | undefined;
649
+ lastEventTimestamp: number;
650
+ doReconnect: boolean;
651
+ private keepAliveInterval;
652
+ private keepReconnectInterval;
653
+ private connected;
654
+ getSocketIoFunction(Client: string): void;
655
+ initSocketConnection(): void;
656
+ initSocketEvents(): void;
657
+ clearKeepAliveInterval(): void;
658
+ initKeepAlive(): void;
659
+ closeAllConnections(): void;
660
+ private onKeepAliveResponse;
661
+ private onConnect;
662
+ private onDisconnect;
663
+ }
664
+
665
+ export declare type SocketTyped = Socket_2<EventCallbackRegistry, Record<EventsEnum_3, any>>
666
+
667
+ export declare interface Summery {
668
+ representative: string
669
+ }
670
+
671
+ export declare type TestEventListener = (event: { test: string }) => void
672
+
673
+ declare type TypedSocketIo = (...args: Parameters<typeof io>) => SocketTyped;
674
+
675
+ export declare type updateRoomListener = (value: string) => void
676
+
677
+ export declare interface User {
678
+ userID: number,
679
+ userName: string,
680
+ accountID: number
681
+
682
+ }
683
+
684
+ export declare type WrappedSocketEvent<T extends EventsEnum_2> = {
685
+ name: T
686
+ data: EventDataMap[T]
687
+ }
688
+
689
+ export { }