@acrobits/ipc-sdk 0.11.2-alpha.7 → 0.12.0-alpha.10

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.
package/lib/index.d.ts CHANGED
@@ -23,17 +23,83 @@ export declare type BaseContactItem = {
23
23
  /**
24
24
  * Cloud ID associated with the contact.
25
25
  *
26
- * @deprecated Use {@link CloudContact.cloudId} instead.
26
+ * @deprecated Use `CloudContact.cloudId` instead.
27
27
  */
28
28
  cloudId?: string;
29
29
  /**
30
30
  * Network ID for the contact.
31
31
  *
32
- * @deprecated Use {@link CloudContact.networkId} instead.
32
+ * @deprecated Use `CloudContact.networkId` instead.
33
33
  */
34
34
  networkId?: string;
35
35
  };
36
36
 
37
+ /**
38
+ * Represents information about a single call.
39
+ *
40
+ * @public
41
+ */
42
+ export declare interface CallInfoItem {
43
+ /**
44
+ * Unique identifier for the call.
45
+ */
46
+ callId: string;
47
+ /**
48
+ * Call event ID as tracked by the Host app.
49
+ */
50
+ eventId: number;
51
+ /**
52
+ * Optional group ID as tracked by the Host app, provided if the call is part of a group.
53
+ */
54
+ groupId?: string;
55
+ /**
56
+ * Current state of the call.
57
+ */
58
+ callState: CallState;
59
+ /**
60
+ * Optional timestamp (in seconds since epoch) when the call was established.
61
+ */
62
+ establishedDate?: number;
63
+ /**
64
+ * Information about the remote user in the call.
65
+ */
66
+ remoteUser: RemoteUser;
67
+ /**
68
+ * Whether the call is currently on hold.
69
+ */
70
+ isHeld: boolean;
71
+ }
72
+
73
+ /**
74
+ * Possible states of a call as tracked by the Host app.
75
+ *
76
+ * - `Unknown` - Default/initial state; call state cannot be determined.
77
+ * - `Trying` - Outgoing call: INVITE sent, waiting for provisional response.
78
+ * - `Ringing` - Outgoing call: remote party is ringing (180 Ringing received).
79
+ * - `Busy` - Outgoing call: called party is busy (486 response). Terminal, Failed.
80
+ * - `IncomingAnswered` - Incoming call: user answered, media setup in progress.
81
+ * - `IncomingTrying` - Incoming call: protocol-level setup in progress, user has not answered.
82
+ * - `IncomingRinging` - Incoming call: alerting the user (ringing locally). This is the initial
83
+ * state for pushed incoming calls received from SIPIS.
84
+ * - `IncomingIgnored` - Incoming call: user explicitly ignored the call on call screen or silenced
85
+ * the ringer.
86
+ * - `IncomingRejected` - Incoming call: user explicitly rejected. Terminal.
87
+ * - `IncomingMissed` - Incoming call: caller hung up or timed out before user answered. Terminal.
88
+ * - `Established` - Call connected: signaling/media session established; actual media may be
89
+ * muted/on hold/one-way.
90
+ * - `Error` - Call failed due to RTP, transport, or logic error. Terminal, Failed.
91
+ * - `Unauthorized` - Authentication with server failed. Terminal, Failed.
92
+ * - `Terminated` - Call ended normally (BYE exchanged or clean hangup). Terminal.
93
+ * - `IncomingForwarded` - Incoming call: forwarded to another destination by user. Terminal.
94
+ * - `IncomingAnsweredElsewhere` - Incoming call: answered on another device (same account).
95
+ * Terminal.
96
+ * - `RedirectedToAlternativeService` - Outgoing call: server redirected to alternative service
97
+ * (3xx/location). Terminal.
98
+ *
99
+ * @public
100
+ */
101
+ export declare type CallState = 'Unknown' | 'Trying' | 'Ringing' | 'Busy' | 'IncomingAnswered' | 'IncomingTrying' | 'IncomingRinging' | 'IncomingIgnored' | 'IncomingRejected' | 'IncomingMissed' | 'Established' | 'Error' | 'Unauthorized' | 'Terminated' | 'IncomingForwarded' | 'IncomingAnsweredElsewhere' | 'RedirectedToAlternativeService';
102
+
37
103
  /**
38
104
  * Defines cloud-username contact information.
39
105
  *
@@ -71,7 +137,7 @@ export declare type CloudUsernameContactItem = BaseContactItem & {
71
137
  /**
72
138
  * Cloud username associated with the contact.
73
139
  *
74
- * @deprecated Use {@link CloudContact.cloudUsername} instead.
140
+ * @deprecated Use `CloudContact.cloudUsername` instead.
75
141
  */
76
142
  cloudUsername?: string;
77
143
  };
@@ -81,8 +147,9 @@ export declare type CloudUsernameContactItem = BaseContactItem & {
81
147
  *
82
148
  * @example
83
149
  * ```ts
84
- * const email1 = 'test@example.com';
85
- * const email2 = 'test@example.com';
150
+ * const email1 = 'test\@example.com';
151
+ * const email2 = 'test\@example.com';
152
+ * ```
86
153
  *
87
154
  * @public
88
155
  */
@@ -300,7 +367,11 @@ export declare const enum IPCEvents {
300
367
  /**
301
368
  * Event that is fired when the `Host` app sends a REQUEST LOGS event.
302
369
  */
303
- RequestLogs = "REQUEST LOGS"
370
+ RequestLogs = "REQUEST LOGS",
371
+ /**
372
+ * Event that is fired when the `Host` app sends a CALL INFO update.
373
+ */
374
+ CallInfo = "CALL INFO"
304
375
  }
305
376
 
306
377
  /**
@@ -369,6 +440,10 @@ export declare class IPCManager {
369
440
  /**
370
441
  * Requests the `Host` app to open the contact selection UI.
371
442
  *
443
+ * @remarks
444
+ * This overload requires protocol version 2.1 or higher. If the negotiated version
445
+ * is 2.0, an {@link UnsupportedVersionError} will be thrown.
446
+ *
372
447
  * @param corelationId - An identifier for the message stream
373
448
  * @param options - Configuration options for contact selection:
374
449
  * - `mode`: Whether to allow 'single' or 'multi' contact selection
@@ -377,213 +452,261 @@ export declare class IPCManager {
377
452
  * - `includeOffNetworkContacts`: Whether to include contacts not on the network. Defaults to false
378
453
  *
379
454
  * @returns A collection of {@link ContactItem} objects which the user selected
380
- */
381
- selectContacts(corelationId: number, options: SelectContactsOptions): Promise<ContactItem[]>;
382
- /**
383
- * Requests the `Host` app to open the contact selection UI.
384
- *
385
- * @deprecated Use the `selectContacts` method with the `options` parameter instead.
386
- *
387
- * @remarks
388
- * When requesting a `single` contact, the `Host` app will return immediately
389
- * after contact selection.
390
- *
391
- * @param corelationId - An identifier for the message stream
392
- * @param mode - _Optional_. Whether to allow `single` or `multi` contact selection.
393
- * @param contactType - _Optional_. The type of contacts to be selected. This can be either
394
- * `cloudUsername` or `uri`. Defaults to `cloudUsername`.
395
- *
396
- * @returns A collection of {@link ContactItem} objects which the user selected along with the
397
- * `corelationId`.
398
- */
399
- selectContacts(corelationId: number, mode?: 'single', contactType?: ContactType): Promise<ContactItem[]>;
400
- /**
401
- * Requests the `Host` app to open the contact selection UI.
402
- *
403
- * @deprecated Use the `selectContacts` method with the `options` parameter instead.
404
- *
405
- * @remarks
406
- * When requesting a `multi` contact, the user will have to manually close the contact selection
407
- * UI. The `Host` app will return the selected contacts when the user closes the UI.
408
- *
409
- * When requesting a `multi` contact, the `currentContacts` parameter is required. This will
410
- * be used to highlight the contacts that are already selected.
411
- *
412
- * @param corelationId - An identifier for the message stream
413
- * @param mode - Whether to allow `single` or `multi` contact selection.
414
- * @param currentContacts - A list of {@link ContactItem} objects that are currently selected.
415
- * This is used to highlight the current contacts from the selection UI.
416
- * @param contactType - _Optional_. The type of contacts to be selected. This can be either
417
- * `cloudUsername` or `uri`. Defaults to `cloudUsername`.
418
- *
419
- * @returns A collection of {@link ContactItem} objects which the user selected along with the
420
- * `corelationId`.
421
- */
422
- selectContacts(corelationId: number, mode: 'multi', currentContacts: ContactItem[], contactType?: ContactType): Promise<ContactItem[]>;
423
- private selectContacts_V2_0;
424
- private selectContacts_V2_1;
425
- /**
426
- * Matches batch of {@link ContactItem} objects against the Host's contact list to fetch detailed
427
- * contact information.
428
- *
429
- * @param contacts - List of {@link ContactItem} collection to match against the Host's contact
430
- * list.
431
- * @returns A collection of {@link DetailedContactItem} objects which were matched against the
432
- * Host's contact list.
433
- */
434
- matchContacts(contacts: ContactItem[]): Promise<Record<string, DetailedContactItem_2 | null | undefined> | CloudUsernameDetailedContactItem[]>;
435
- /**
436
- * Requests the `Host` app to provide the Push Token for the current device.
437
- *
438
- * @returns A promise with the Push Token as `string`.
439
- */
440
- requestPushToken(): Promise<string>;
441
- /**
442
- * Sends the current badge count to the `Host` app.
443
- *
444
- * @param count - The count to update the badge to.
445
- * @param isActivity - _Optional_. Whether the update is for an activity instead of a badge.
446
- */
447
- badgeUpdate(count: number, isActivity?: boolean): void;
448
- /**
449
- * Requests the `Host` app to reset the app and log out the user.
450
- *
451
- * @remarks
452
- * For added security, the Host can confirm the user's intention to reset the app by displaying
453
- * a confirmation dialog. The user can decide to cancel the reset operation.
454
- */
455
- requestAppReset(): void;
456
- /**
457
- * Requests the `Host` app to open the given URL in an external browser.
458
- *
459
- * @remarks
460
- * Any additional data to be posted alongside the URL is included with the `data` parameter.
461
- *
462
- * @example
463
- *
464
- * ```ts
465
- * // import the IPCManager
466
- * import { IPCManager } from '@acrobits/ipc-sdk';
467
- *
468
- * // create an instance of IPCManager
469
- * const manager = new IPCManager();
470
- *
471
- * // open the URL with additional data
472
- * const url = 'https://example.com';
473
- * const data = {
474
- * name: 'John Doe',
475
- * age: 30
476
- * };
477
- *
478
- * manager.openUrl(url, data);
479
- * ```
480
- *
481
- * @param url - URL to open in the external browser
482
- * @param data - _Optional_. Any additional data to be sent along with the URL
483
- */
484
- openUrl<TData>(url: string, data?: TData): void;
485
- /**
486
- * Initiates a SIP call to the given {@link ContactItem}.
487
- *
488
- * @param contact - {@link ContactItem} for the callee.
489
- */
490
- sipCall(contact: ContactItem): void;
491
- /**
492
- * Registers a callback to be invoked when a {@link IPCEvents.BadgeQuery} is received.
493
- *
494
- * @param callback - A callback function to be invoked when a {@link IPCEvents.BadgeQuery} event
495
- * is received.
496
- * @returns An unsubscribe callback to remove the listener.
497
- */
498
- onBadgeQueryRequest(callback: () => void): UnsubscribeCallback;
499
- /**
500
- * Registers a callback to be invoked when a {@link IPCEvents.Lifecycle} event is received.
501
- *
502
- * @remarks
503
- * The `eventName` and `payload` are defined by the `Host` app and can vary for each LIFECYCLE
504
- * event. The payload can be an empty object for events without any additional data.
505
- *
506
- * @param callback - A callback function to be invoked when a {@link IPCEvents.Lifecycle} event
507
- * is received.
508
- *
509
- * @returns An unsubscribe callback to remove the listener.
510
- */
511
- onLifecycleEvent(callback: (event: string, payload: Record<string, unknown>) => void): UnsubscribeCallback;
512
- /**
513
- * Registers a callback to be invoked when a {@link IPCEvents.PushToken} event is received.
514
- *
515
- * @remarks
516
- * The `token`, `appId`, `selector` and `expiry` are defined by the `Host` app and can vary for
517
- * each Push Token event.
518
- *
519
- * @param callback - A callback function to be invoked when a {@link IPCEvents.PushToken} event
520
- * is received.
521
- * @returns An unsubscribe callback to remove the listener.
522
- */
523
- onPushToken(callback: (token: string, appId: string, selector: string) => void): () => boolean | undefined;
524
- /**
525
- * Registers a callback to be invoked when a {@link IPCEvents.RequestLogs} event is received.
526
- *
527
- * @remarks
528
- * The Host app can request logs from the Client app by sending a RequestLogs event. The callback
529
- * will receive a skipCompression parameter indicating whether the logs should be compressed or not.
530
- *
531
- * When skipCompression is true, the logs should be sent uncompressed. When false or undefined,
532
- * the logs should be compressed before sending.
533
455
  *
534
- * @param callback - A callback function to be invoked when a {@link IPCEvents.RequestLogs} event
535
- * is received. The callback receives an optional skipCompression parameter.
536
- *
537
- * @returns An unsubscribe callback to remove the listener.
538
- */
539
- onRequestLogsMessage(callback: (skipCompression?: boolean) => void): () => boolean | undefined;
540
- private evaluateContext;
541
- }
456
+ * @throws {@link UnsupportedVersionError} if the negotiated version is 2.0.
457
+ */
458
+ selectContacts(corelationId: number, options: SelectContactsOptions): Promise<ContactItem[]>;
459
+ /**
460
+ * Requests the `Host` app to open the contact selection UI.
461
+ *
462
+ * @deprecated Use the `selectContacts` method with the `options` parameter instead.
463
+ *
464
+ * @remarks
465
+ * When requesting a `single` contact, the `Host` app will return immediately
466
+ * after contact selection.
467
+ *
468
+ * @param corelationId - An identifier for the message stream
469
+ * @param mode - _Optional_. Whether to allow `single` or `multi` contact selection.
470
+ * @param contactType - _Optional_. The type of contacts to be selected. This can be either
471
+ * `cloudUsername` or `uri`. Defaults to `cloudUsername`.
472
+ *
473
+ * @returns A collection of {@link ContactItem} objects which the user selected along with the
474
+ * `corelationId`.
475
+ */
476
+ selectContacts(corelationId: number, mode?: 'single', contactType?: ContactType): Promise<ContactItem[]>;
477
+ /**
478
+ * Requests the `Host` app to open the contact selection UI.
479
+ *
480
+ * @deprecated Use the `selectContacts` method with the `options` parameter instead.
481
+ *
482
+ * @remarks
483
+ * When requesting a `multi` contact, the user will have to manually close the contact selection
484
+ * UI. The `Host` app will return the selected contacts when the user closes the UI.
485
+ *
486
+ * When requesting a `multi` contact, the `currentContacts` parameter is required. This will
487
+ * be used to highlight the contacts that are already selected.
488
+ *
489
+ * @param corelationId - An identifier for the message stream
490
+ * @param mode - Whether to allow `single` or `multi` contact selection.
491
+ * @param currentContacts - A list of {@link ContactItem} objects that are currently selected.
492
+ * This is used to highlight the current contacts from the selection UI.
493
+ * @param contactType - _Optional_. The type of contacts to be selected. This can be either
494
+ * `cloudUsername` or `uri`. Defaults to `cloudUsername`.
495
+ *
496
+ * @returns A collection of {@link ContactItem} objects which the user selected along with the
497
+ * `corelationId`.
498
+ */
499
+ selectContacts(corelationId: number, mode: 'multi', currentContacts: ContactItem[], contactType?: ContactType): Promise<ContactItem[]>;
500
+ private selectContacts_V2_0;
501
+ private selectContacts_V2_1;
502
+ /**
503
+ * Matches batch of {@link ContactItem} objects against the Host's contact list to fetch detailed
504
+ * contact information.
505
+ *
506
+ * @param contacts - List of {@link ContactItem} collection to match against the Host's contact
507
+ * list.
508
+ * @returns A collection of {@link DetailedContactItem} objects which were matched against the
509
+ * Host's contact list.
510
+ */
511
+ matchContacts(contacts: ContactItem[]): Promise<Record<string, DetailedContactItem_2 | null | undefined> | CloudUsernameDetailedContactItem[]>;
512
+ /**
513
+ * Requests the `Host` app to provide the Push Token for the current device.
514
+ *
515
+ * @returns A promise with the Push Token as `string`.
516
+ */
517
+ requestPushToken(): Promise<string>;
518
+ /**
519
+ * Sends the current badge count to the `Host` app.
520
+ *
521
+ * @param count - The count to update the badge to.
522
+ * @param isActivity - _Optional_. Whether the update is for an activity instead of a badge.
523
+ */
524
+ badgeUpdate(count: number, isActivity?: boolean): void;
525
+ /**
526
+ * Requests the `Host` app to reset the app and log out the user.
527
+ *
528
+ * @remarks
529
+ * For added security, the Host can confirm the user's intention to reset the app by displaying
530
+ * a confirmation dialog. The user can decide to cancel the reset operation.
531
+ */
532
+ requestAppReset(): void;
533
+ /**
534
+ * Requests the `Host` app to open the given URL in an external browser.
535
+ *
536
+ * @remarks
537
+ * Any additional data to be posted alongside the URL is included with the `data` parameter.
538
+ *
539
+ * @example
540
+ *
541
+ * ```ts
542
+ * // import the IPCManager
543
+ * import { IPCManager } from '@acrobits/ipc-sdk';
544
+ *
545
+ * // create an instance of IPCManager
546
+ * const manager = new IPCManager();
547
+ *
548
+ * // open the URL with additional data
549
+ * const url = 'https://example.com';
550
+ * const data = {
551
+ * name: 'John Doe',
552
+ * age: 30
553
+ * };
554
+ *
555
+ * manager.openUrl(url, data);
556
+ * ```
557
+ *
558
+ * @param url - URL to open in the external browser
559
+ * @param data - _Optional_. Any additional data to be sent along with the URL
560
+ */
561
+ openUrl<TData>(url: string, data?: TData): void;
562
+ /**
563
+ * Initiates a SIP call to the given {@link ContactItem}.
564
+ *
565
+ * @param contact - {@link ContactItem} for the callee.
566
+ */
567
+ sipCall(contact: ContactItem): void;
568
+ /**
569
+ * Registers a callback to be invoked when a {@link IPCEvents.BadgeQuery} is received.
570
+ *
571
+ * @param callback - A callback function to be invoked when a {@link IPCEvents.BadgeQuery} event
572
+ * is received.
573
+ * @returns An unsubscribe callback to remove the listener.
574
+ */
575
+ onBadgeQueryRequest(callback: () => void): UnsubscribeCallback;
576
+ /**
577
+ * Registers a callback to be invoked when a {@link IPCEvents.Lifecycle} event is received.
578
+ *
579
+ * @remarks
580
+ * The `eventName` and `payload` are defined by the `Host` app and can vary for each LIFECYCLE
581
+ * event. The payload can be an empty object for events without any additional data.
582
+ *
583
+ * @param callback - A callback function to be invoked when a {@link IPCEvents.Lifecycle} event
584
+ * is received.
585
+ *
586
+ * @returns An unsubscribe callback to remove the listener.
587
+ */
588
+ onLifecycleEvent(callback: (event: string, payload: Record<string, unknown>) => void): UnsubscribeCallback;
589
+ /**
590
+ * Registers a callback to be invoked when a {@link IPCEvents.PushToken} event is received.
591
+ *
592
+ * @remarks
593
+ * The `token`, `appId`, `selector` and `expiry` are defined by the `Host` app and can vary for
594
+ * each Push Token event.
595
+ *
596
+ * @param callback - A callback function to be invoked when a {@link IPCEvents.PushToken} event
597
+ * is received.
598
+ * @returns An unsubscribe callback to remove the listener.
599
+ */
600
+ onPushToken(callback: (token: string, appId: string, selector: string) => void): () => boolean | undefined;
601
+ /**
602
+ * Registers a callback to be invoked when a {@link IPCEvents.RequestLogs} event is received.
603
+ *
604
+ * @remarks
605
+ * The Host app can request logs from the Client app by sending a RequestLogs event. The callback
606
+ * will receive a skipCompression parameter indicating whether the logs should be compressed or not.
607
+ *
608
+ * When skipCompression is true, the logs should be sent uncompressed. When false or undefined,
609
+ * the logs should be compressed before sending.
610
+ *
611
+ * @param callback - A callback function to be invoked when a {@link IPCEvents.RequestLogs} event
612
+ * is received. The callback receives an optional skipCompression parameter.
613
+ *
614
+ * @returns An unsubscribe callback to remove the listener.
615
+ */
616
+ onRequestLogsMessage(callback: (skipCompression?: boolean) => void): () => boolean | undefined;
617
+ /**
618
+ * Requests the current call information from the `Host` app.
619
+ *
620
+ * @remarks
621
+ * This method requires protocol version 2.2 or higher. If the negotiated version
622
+ * is lower, an {@link UnsupportedVersionError} will be thrown.
623
+ *
624
+ * @returns A promise with an array of {@link CallInfoItem} objects representing
625
+ * the current calls.
626
+ *
627
+ * @throws {@link UnsupportedVersionError} if the negotiated version is below 2.2.
628
+ */
629
+ requestCallInfo(): Promise<CallInfoItem[]>;
630
+ /**
631
+ * Registers a callback to be invoked when a {@link IPCEvents.CallInfo} event is received.
632
+ *
633
+ * @remarks
634
+ * The Host app sends CALL INFO updates when call state changes occur. This includes
635
+ * new calls, call state transitions, and call terminations.
636
+ *
637
+ * Note: This event is only available on protocol version 2.2 or higher. On lower versions,
638
+ * the callback will never be invoked.
639
+ *
640
+ * @param callback - A callback function to be invoked when a {@link IPCEvents.CallInfo} event
641
+ * is received. The callback receives an array of {@link CallInfoItem} objects.
642
+ *
643
+ * @returns An unsubscribe callback to remove the listener.
644
+ */
645
+ onCallInfo(callback: (calls: CallInfoItem[]) => void): UnsubscribeCallback;
646
+ private evaluateContext;
647
+ }
542
648
 
543
- /**
544
- * Supported versions of the IPC Protocol.
545
- *
546
- * @public
547
- */
548
- export declare type IpcProtocolVersion = '0.1' | '0.2' | '0.3' | '0.4' | '0.5' | '0.6' | '0.7' | '0.8' | '0.9' | '0.10' | '2.0' | '2.1' | '2.2';
649
+ /**
650
+ * Supported versions of the IPC Protocol.
651
+ *
652
+ * @public
653
+ */
654
+ export declare type IpcProtocolVersion = '0.1' | '0.2' | '0.3' | '0.4' | '0.5' | '0.6' | '0.7' | '0.8' | '0.9' | '0.10' | '2.0' | '2.1' | '2.2';
549
655
 
550
- /**
551
- * Defines the properties of a number based contact item.
552
- *
553
- * @public
554
- */
555
- declare type NumberContactItem = BaseContactItem & {
556
- type: 'number';
557
- /**
558
- * Number associated with the contact.
559
- */
560
- numbers: ContactNumber[];
561
- };
656
+ /**
657
+ * Defines the properties of a number based contact item.
658
+ *
659
+ * @public
660
+ */
661
+ declare type NumberContactItem = BaseContactItem & {
662
+ type: 'number';
663
+ /**
664
+ * Number associated with the contact.
665
+ */
666
+ numbers: ContactNumber[];
667
+ };
562
668
 
563
- declare type SelectContactsOptions = {
564
- mode: 'single' | 'multi';
565
- currentContacts?: ContactItem[];
566
- resultTypes?: ContactType[];
567
- };
669
+ /**
670
+ * Represents the remote user in a call.
671
+ *
672
+ * @public
673
+ */
674
+ export declare interface RemoteUser {
675
+ /**
676
+ * Display name of the remote user.
677
+ */
678
+ displayName: string;
679
+ /**
680
+ * Transport URI of the remote user.
681
+ */
682
+ transportUri: string;
683
+ }
568
684
 
569
- /**
570
- * A callback function to unsubscribe the registered listener.
571
- *
572
- * @public
573
- */
574
- export declare type UnsubscribeCallback = () => void;
685
+ declare type SelectContactsOptions = {
686
+ mode: 'single' | 'multi';
687
+ filterToSelectedType: boolean;
688
+ currentContacts?: ContactItem[];
689
+ resultTypes?: ContactType[];
690
+ };
575
691
 
576
- /**
577
- * Defines the properties of a SIP URI based contact item.
578
- *
579
- * @public
580
- */
581
- export declare type UriContactItem = BaseContactItem & {
582
- type: 'uri';
583
- /**
584
- * URI or number associated with the contact with prefix (e.g. sip: or tel:)
585
- */
586
- uri: ContactURI;
587
- };
692
+ /**
693
+ * A callback function to unsubscribe the registered listener.
694
+ *
695
+ * @public
696
+ */
697
+ export declare type UnsubscribeCallback = () => void;
698
+
699
+ /**
700
+ * Defines the properties of a SIP URI based contact item.
701
+ *
702
+ * @public
703
+ */
704
+ export declare type UriContactItem = BaseContactItem & {
705
+ type: 'uri';
706
+ /**
707
+ * URI or number associated with the contact with prefix (e.g. sip: or tel:)
708
+ */
709
+ uri: ContactURI;
710
+ };
588
711
 
589
- export { }
712
+ export { }