@cometchat/calls-sdk-react-native 5.0.4 → 5.0.5

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/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as zustand0 from "zustand";
1
+ import * as zustand1 from "zustand";
2
2
  import * as zustand_middleware0 from "zustand/middleware";
3
3
  import { AppStateStatus } from "react-native";
4
4
  import JitsiMeetJS from "@cometchat/calls-lib-webrtc";
@@ -312,6 +312,64 @@ declare const INTERNAL_EVENTS: {
312
312
  readonly SDKInitialized: "internal.SDKInitialized";
313
313
  };
314
314
  };
315
+ declare const CAPTION_LANGUAGES: readonly [{
316
+ readonly code: "en-US";
317
+ readonly label: "English (United States)";
318
+ }, {
319
+ readonly code: "de-DE";
320
+ readonly label: "German (Germany)";
321
+ }, {
322
+ readonly code: "en-GB";
323
+ readonly label: "English (United Kingdom)";
324
+ }, {
325
+ readonly code: "es-ES";
326
+ readonly label: "Spanish (Spain)";
327
+ }, {
328
+ readonly code: "fr-FR";
329
+ readonly label: "French (France)";
330
+ }, {
331
+ readonly code: "hi-IN";
332
+ readonly label: "Hindi (India)";
333
+ }, {
334
+ readonly code: "hu-HU";
335
+ readonly label: "Hungarian (Hungary)";
336
+ }, {
337
+ readonly code: "it-IT";
338
+ readonly label: "Italian (Italy)";
339
+ }, {
340
+ readonly code: "ja-JP";
341
+ readonly label: "Japanese (Japan)";
342
+ }, {
343
+ readonly code: "ko-KR";
344
+ readonly label: "Korean (South Korea)";
345
+ }, {
346
+ readonly code: "lt-LT";
347
+ readonly label: "Lithuanian (Lithuania)";
348
+ }, {
349
+ readonly code: "ms-MY";
350
+ readonly label: "Malay (Malaysia)";
351
+ }, {
352
+ readonly code: "nl-NL";
353
+ readonly label: "Dutch (Netherlands)";
354
+ }, {
355
+ readonly code: "pt-PT";
356
+ readonly label: "Portuguese (Portugal)";
357
+ }, {
358
+ readonly code: "ru-RU";
359
+ readonly label: "Russian (Russia)";
360
+ }, {
361
+ readonly code: "sv-SE";
362
+ readonly label: "Swedish (Sweden)";
363
+ }, {
364
+ readonly code: "tr-TR";
365
+ readonly label: "Turkish (Turkey)";
366
+ }, {
367
+ readonly code: "zh";
368
+ readonly label: "Chinese Mandarin (Simplified, China)";
369
+ }, {
370
+ readonly code: "zh-TW";
371
+ readonly label: "Chinese Mandarin (Traditional, Taiwan)";
372
+ }];
315
373
  //#endregion
316
374
  //#region calls-sdk-core/utils/debounce.d.ts
317
375
  declare function debounce<T extends (...args: any[]) => any>(func: T, delay: number): (...args: Parameters<T>) => void;
@@ -329,7 +387,7 @@ type VideoInputDevice = MediaDeviceInfo & {
329
387
  type Subscription = (() => void) | {
330
388
  remove: () => void;
331
389
  };
332
- type SettingsDialogTab = 'audio' | 'video';
390
+ type SettingsDialogTab = 'audio' | 'video' | 'closedCaption';
333
391
  type BaseState = {
334
392
  participantListVisible: boolean;
335
393
  moreMenuVisible: boolean;
@@ -402,7 +460,7 @@ type Actions$5 = {
402
460
  isMobileSDK: () => boolean;
403
461
  isMobile: () => boolean;
404
462
  };
405
- declare const useBaseStore: zustand0.UseBoundStore<Omit<Omit<zustand0.StoreApi<BaseState & Actions$5>, "subscribe"> & {
463
+ declare const useBaseStore: zustand1.UseBoundStore<Omit<Omit<zustand1.StoreApi<BaseState & Actions$5>, "subscribe"> & {
406
464
  subscribe: {
407
465
  (listener: (selectedState: BaseState & Actions$5, previousSelectedState: BaseState & Actions$5) => void): () => void;
408
466
  <U>(selector: (state: BaseState & Actions$5) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
@@ -488,7 +546,7 @@ type Actions$4 = {
488
546
  leaveConference: () => Promise<void>;
489
547
  endConference: () => Promise<void>;
490
548
  };
491
- declare const useConferenceStore: zustand0.UseBoundStore<Omit<zustand0.StoreApi<ConferenceState & Actions$4>, "subscribe"> & {
549
+ declare const useConferenceStore: zustand1.UseBoundStore<Omit<zustand1.StoreApi<ConferenceState & Actions$4>, "subscribe"> & {
492
550
  subscribe: {
493
551
  (listener: (selectedState: ConferenceState & Actions$4, previousSelectedState: ConferenceState & Actions$4) => void): () => void;
494
552
  <U>(selector: (state: ConferenceState & Actions$4) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
@@ -659,6 +717,14 @@ type ConfigStateBoth = {
659
717
  * @default false
660
718
  */
661
719
  autoStartRecording: boolean;
720
+ /**
721
+ * Automatically starts live transcription as soon as the call begins,
722
+ * without the user pressing the transcription button. Transcription must
723
+ * be enabled for your app for this to take effect.
724
+ *
725
+ * @default false
726
+ */
727
+ autoStartTranscription: boolean;
662
728
  /**
663
729
  * Hides the recording button from the call controls, preventing the user
664
730
  * from manually starting or stopping recording from within the SDK UI.
@@ -789,6 +855,28 @@ type ConfigStateBoth = {
789
855
  * @default false
790
856
  */
791
857
  hideSwitchCameraButton: boolean;
858
+ /**
859
+ * Hides the closed-caption button that lets the user show or hide live
860
+ * captions on screen. Even when set to `false`, the button only appears
861
+ * while transcription is running, since captions are produced from the
862
+ * live transcript.
863
+ *
864
+ * @default true
865
+ */
866
+ hideClosedCaptionButton: boolean;
867
+ /**
868
+ * Hides the transcription button from the call controls, preventing the
869
+ * user from manually starting or stopping live transcription from within
870
+ * the SDK UI.
871
+ *
872
+ * @default true
873
+ */
874
+ hideTranscriptionButton: boolean;
875
+ /**
876
+ * The currently selected caption/transcription language code (e.g.
877
+ * `en-US`). Selected from the closed-caption settings dropdown.
878
+ */
879
+ captionLanguage: CaptionLanguageCode;
792
880
  /**
793
881
  * Enables the per-participant context menu — opened by right-clicking (web)
794
882
  * or long-pressing (mobile) a participant's tile — that exposes actions such
@@ -892,7 +980,7 @@ type ConfigState = ConfigStateInternal & ConfigStateMobile & ConfigStateWeb & Co
892
980
  type Actions$3 = {
893
981
  reset: () => void;
894
982
  };
895
- declare const useConfigStore: zustand0.UseBoundStore<Omit<zustand0.StoreApi<ConfigStateInternal & ConfigStateMobile & ConfigStateWeb & ConfigStateBoth & Actions$3>, "subscribe"> & {
983
+ declare const useConfigStore: zustand1.UseBoundStore<Omit<zustand1.StoreApi<ConfigStateInternal & ConfigStateMobile & ConfigStateWeb & ConfigStateBoth & Actions$3>, "subscribe"> & {
896
984
  subscribe: {
897
985
  (listener: (selectedState: ConfigStateInternal & ConfigStateMobile & ConfigStateWeb & ConfigStateBoth & Actions$3, previousSelectedState: ConfigStateInternal & ConfigStateMobile & ConfigStateWeb & ConfigStateBoth & Actions$3) => void): () => void;
898
986
  <U>(selector: (state: ConfigStateInternal & ConfigStateMobile & ConfigStateWeb & ConfigStateBoth & Actions$3) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
@@ -1045,7 +1133,7 @@ type Actions$2 = {
1045
1133
  disconnect: () => Promise<void>;
1046
1134
  reset: () => void;
1047
1135
  };
1048
- declare const useConnectionStore: zustand0.UseBoundStore<Omit<zustand0.StoreApi<ConnectionState & Actions$2>, "subscribe"> & {
1136
+ declare const useConnectionStore: zustand1.UseBoundStore<Omit<zustand1.StoreApi<ConnectionState & Actions$2>, "subscribe"> & {
1049
1137
  subscribe: {
1050
1138
  (listener: (selectedState: ConnectionState & Actions$2, previousSelectedState: ConnectionState & Actions$2) => void): () => void;
1051
1139
  <U>(selector: (state: ConnectionState & Actions$2) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
@@ -1096,7 +1184,7 @@ type Actions$1 = {
1096
1184
  getParticipantById: (pid: string) => HumanParticipant | undefined;
1097
1185
  reset: () => void;
1098
1186
  };
1099
- declare const useParticipantStore: zustand0.UseBoundStore<Omit<zustand0.StoreApi<ParticipantsState & Actions$1>, "subscribe"> & {
1187
+ declare const useParticipantStore: zustand1.UseBoundStore<Omit<zustand1.StoreApi<ParticipantsState & Actions$1>, "subscribe"> & {
1100
1188
  subscribe: {
1101
1189
  (listener: (selectedState: ParticipantsState & Actions$1, previousSelectedState: ParticipantsState & Actions$1) => void): () => void;
1102
1190
  <U>(selector: (state: ParticipantsState & Actions$1) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
@@ -1144,7 +1232,7 @@ interface ToastActions {
1144
1232
  clearAll: () => void;
1145
1233
  reset: () => void;
1146
1234
  }
1147
- declare const useToastStore: zustand0.UseBoundStore<zustand0.StoreApi<ToastState & ToastActions>>;
1235
+ declare const useToastStore: zustand1.UseBoundStore<zustand1.StoreApi<ToastState & ToastActions>>;
1148
1236
  declare function showToast(params: {
1149
1237
  id?: string;
1150
1238
  message: string;
@@ -1180,7 +1268,7 @@ type Actions = {
1180
1268
  updateTrack: (originalTrack: any, updatedTrack: Partial<Track>) => void;
1181
1269
  updateLocalTrack: (mediaType: MediaType, updatedTrack: Partial<Track>) => void;
1182
1270
  };
1183
- declare const useTracksStore: zustand0.UseBoundStore<Omit<zustand0.StoreApi<TracksState & Actions>, "subscribe"> & {
1271
+ declare const useTracksStore: zustand1.UseBoundStore<Omit<zustand1.StoreApi<TracksState & Actions>, "subscribe"> & {
1184
1272
  subscribe: {
1185
1273
  (listener: (selectedState: TracksState & Actions, previousSelectedState: TracksState & Actions) => void): () => void;
1186
1274
  <U>(selector: (state: TracksState & Actions) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
@@ -1201,6 +1289,109 @@ declare const pauseVideoTrack: (authority?: number) => void;
1201
1289
  declare const resumeVideoTrack: (authority?: number) => Promise<void>;
1202
1290
  declare const toggleVideoTrack: () => void;
1203
1291
  //#endregion
1292
+ //#region calls-sdk-core/store/transcription.d.ts
1293
+ /**
1294
+ * A single entry inside a transcription-result `transcript` array.
1295
+ */
1296
+ interface TranscriptSegment {
1297
+ confidence: number;
1298
+ text: string;
1299
+ }
1300
+ /**
1301
+ * The participant metadata attached to a transcription-result message.
1302
+ */
1303
+ interface TranscriptionParticipant {
1304
+ id: string;
1305
+ name: string;
1306
+ identity_name: string;
1307
+ identity_group_id: string;
1308
+ avatar_url?: string;
1309
+ }
1310
+ /**
1311
+ * Shape of the payload received in `onEndpointMessageReceived` when
1312
+ * `type === 'transcription-result'`. This is stored as the value of each
1313
+ * entry in `transcriptionsMessages`, keyed by `message_id`.
1314
+ */
1315
+ interface TranscriptionMessage {
1316
+ transcript: TranscriptSegment[];
1317
+ is_interim: boolean;
1318
+ language: string;
1319
+ message_id: string;
1320
+ event: string;
1321
+ type: 'transcription-result';
1322
+ participant: TranscriptionParticipant;
1323
+ stability: number;
1324
+ timestamp: number;
1325
+ }
1326
+ interface TranscriptionState {
1327
+ transcriptionsMessages: Map<string, TranscriptionMessage>;
1328
+ /**
1329
+ * Whether the live caption overlay should be shown. Toggled by the
1330
+ * closed-caption button in the control pane / more menu.
1331
+ */
1332
+ showLiveCaption: boolean;
1333
+ /**
1334
+ * Whether transcription is currently active for the session.
1335
+ */
1336
+ isTranscribing: boolean;
1337
+ /**
1338
+ * Whether the transcriber has joined the session.
1339
+ */
1340
+ transcriberJoined: boolean;
1341
+ /**
1342
+ * The currently selected caption/transcription language code (e.g.
1343
+ * `en-US`). Selected from the closed-caption settings dropdown.
1344
+ */
1345
+ captionLanguage: CaptionLanguageCode;
1346
+ }
1347
+ interface TranscriptionActions {
1348
+ /**
1349
+ * Insert or update a transcription message by key. Because a Map `set`
1350
+ * overwrites an existing key, this handles both "add" and "update".
1351
+ */
1352
+ setTranscriptionMessage: (key: string, value: TranscriptionMessage) => void;
1353
+ /**
1354
+ * Remove all transcription messages.
1355
+ */
1356
+ clearTranscriptionMessages: () => void;
1357
+ /**
1358
+ * Toggle the live caption overlay on/off.
1359
+ */
1360
+ toggleShowLiveCaption: () => void;
1361
+ reset: () => void;
1362
+ }
1363
+ declare const useTranscriptionStore: zustand1.UseBoundStore<Omit<zustand1.StoreApi<TranscriptionState & TranscriptionActions>, "subscribe"> & {
1364
+ subscribe: {
1365
+ (listener: (selectedState: TranscriptionState & TranscriptionActions, previousSelectedState: TranscriptionState & TranscriptionActions) => void): () => void;
1366
+ <U>(selector: (state: TranscriptionState & TranscriptionActions) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
1367
+ equalityFn?: ((a: U, b: U) => boolean) | undefined;
1368
+ fireImmediately?: boolean;
1369
+ } | undefined): () => void;
1370
+ };
1371
+ }>;
1372
+ /**
1373
+ * Returns the transcription messages as an array, ordered by their arrival
1374
+ * (Map insertion order). Re-renders only when the underlying Map reference
1375
+ * changes, i.e. when a message is added, updated, or cleared.
1376
+ */
1377
+ declare function useTranscriptionMessages(): TranscriptionMessage[];
1378
+ /**
1379
+ * Returns whether the live caption overlay is currently shown.
1380
+ */
1381
+ declare function useShowLiveCaption(): boolean;
1382
+ /**
1383
+ * Toggle the live caption overlay. Safe to call from outside React (e.g.
1384
+ * button click handlers in the control pane).
1385
+ */
1386
+ declare function toggleShowLiveCaption(): void;
1387
+ /**
1388
+ * Returns whether transcription is currently active for the session.
1389
+ */
1390
+ declare const useIsTranscribing: () => boolean;
1391
+ declare function startTranscription(): Promise<void>;
1392
+ declare function stopTranscription(): Promise<void>;
1393
+ declare function toggleTranscription(): Promise<void>;
1394
+ //#endregion
1204
1395
  //#region calls-sdk-core/store/utils/hooks.d.ts
1205
1396
  declare const useHideMuteAudioButton: () => boolean;
1206
1397
  declare const useHideToggleVideoButton: () => boolean;
@@ -1208,6 +1399,8 @@ declare const useIsConferenceJoined: () => boolean;
1208
1399
  declare const useHideScreenSharingButton: () => boolean;
1209
1400
  declare const useHideSwitchCameraButton: () => boolean;
1210
1401
  declare const useHideChatButton: () => boolean;
1402
+ declare const useHideClosedCaptionButton: () => boolean;
1403
+ declare const useHideTranscriptionButton: () => boolean;
1211
1404
  declare const useLocalParticipant: <T = HumanParticipant>(selector?: (local: HumanParticipant) => T) => T;
1212
1405
  declare const useScreenShareRunning: () => any;
1213
1406
  declare const useTrackMuted: (mediaType: MediaType, participantId?: string) => boolean;
@@ -1328,6 +1521,14 @@ declare class SessionMethodsCore {
1328
1521
  * If recording is active, it will be stopped, and vice versa.
1329
1522
  */
1330
1523
  static toggleRecording(): void;
1524
+ /**
1525
+ * Starts transcription of the call.
1526
+ */
1527
+ static startTranscription(): void;
1528
+ /**
1529
+ * Stops the ongoing call transcription.
1530
+ */
1531
+ static stopTranscription(): void;
1331
1532
  /**
1332
1533
  * Pins a participant's video to focus on them.
1333
1534
  * @param participantId - The ID of the participant to pin.
@@ -1414,9 +1615,9 @@ type SessionType = ValueOf<typeof SESSION_TYPE>;
1414
1615
  type Layout = ValueOf<typeof LAYOUT>;
1415
1616
  type MediaType = ValueOf<typeof MEDIA_TYPE>;
1416
1617
  type ValueOf<T> = T[keyof T];
1417
- type ParticipantRole = ValueOf<typeof PARTICIPANT_ROLE>;
1418
1618
  type NotificationType = 'info' | 'success' | 'warning' | 'error';
1419
1619
  type SDKPlatform = ValueOf<typeof SDK_PLATFORM>;
1620
+ type CaptionLanguageCode = (typeof CAPTION_LANGUAGES)[number]['code'] | (string & {});
1420
1621
  interface ITrackOptions {
1421
1622
  cameraDeviceId?: string | null;
1422
1623
  constraints?: {
@@ -1606,6 +1807,7 @@ declare namespace controlPanel {
1606
1807
  export namespace tabs {
1607
1808
  let audio: string;
1608
1809
  let video: string;
1810
+ let closedCaption: string;
1609
1811
  }
1610
1812
  export namespace deviceLabels {
1611
1813
  let microphone: string;
@@ -1622,6 +1824,10 @@ declare namespace controlPanel {
1622
1824
  let enableNoiseReduction: string;
1623
1825
  }
1624
1826
  export { audioSettings_1 as audioSettings };
1827
+ export namespace closedCaptionSettings {
1828
+ let language: string;
1829
+ let enableClosedCaptions: string;
1830
+ }
1625
1831
  export namespace videoSettings_1 {
1626
1832
  let mirrorMyVideo: string;
1627
1833
  let selectCameraToSeePreview: string;
@@ -1727,12 +1933,16 @@ declare namespace notifications {
1727
1933
  let streamingStarted: string;
1728
1934
  let streamingStopped: string;
1729
1935
  }
1936
+ declare namespace closedCaptions {
1937
+ let emptyState_1: string;
1938
+ export { emptyState_1 as emptyState };
1939
+ }
1730
1940
  declare namespace general {
1731
1941
  let error: string;
1732
1942
  }
1733
1943
  declare let other: {};
1734
1944
  declare namespace __json_default_export {
1735
- export { header, controlPanel, idealTimeout, participantList, virtualBackground, indicators, notifications, general, other };
1945
+ export { header, controlPanel, idealTimeout, participantList, virtualBackground, indicators, notifications, closedCaptions, general, other };
1736
1946
  }
1737
1947
  //#endregion
1738
1948
  //#region calls-sdk-core/i18n/state.d.ts
@@ -1742,7 +1952,7 @@ interface TranslationState {
1742
1952
  translations: Record<string, typeof __json_default_export>;
1743
1953
  currentLocale: CometChatSupportedLocale | Omit<string, CometChatSupportedLocale>;
1744
1954
  }
1745
- declare const useTranslationStore: zustand0.UseBoundStore<Omit<zustand0.StoreApi<Omit<TranslationState, "reset" | "setLocale"> & {
1955
+ declare const useTranslationStore: zustand1.UseBoundStore<Omit<zustand1.StoreApi<Omit<TranslationState, "reset" | "setLocale"> & {
1746
1956
  reset: () => void;
1747
1957
  setLocale: (locale: CometChatSupportedLocale) => void;
1748
1958
  }>, "subscribe"> & {
@@ -1800,6 +2010,7 @@ declare const useTranslation: () => {
1800
2010
  tabs: {
1801
2011
  audio: string;
1802
2012
  video: string;
2013
+ closedCaption: string;
1803
2014
  };
1804
2015
  deviceLabels: {
1805
2016
  microphone: string;
@@ -1815,6 +2026,10 @@ declare const useTranslation: () => {
1815
2026
  audioSettings: {
1816
2027
  enableNoiseReduction: string;
1817
2028
  };
2029
+ closedCaptionSettings: {
2030
+ language: string;
2031
+ enableClosedCaptions: string;
2032
+ };
1818
2033
  videoSettings: {
1819
2034
  mirrorMyVideo: string;
1820
2035
  selectCameraToSeePreview: string;
@@ -1903,6 +2118,9 @@ declare const useTranslation: () => {
1903
2118
  streamingStarted: string;
1904
2119
  streamingStopped: string;
1905
2120
  };
2121
+ closedCaptions: {
2122
+ emptyState: string;
2123
+ };
1906
2124
  general: {
1907
2125
  error: string;
1908
2126
  };
@@ -2786,11 +3004,15 @@ interface IOngoingCallListener {
2786
3004
  onRecordingStarted: (data: Partial<ICallEventsData['onRecordingStarted']>) => void;
2787
3005
  onRecordingStopped: (data: Partial<ICallEventsData['onRecordingStopped']>) => void;
2788
3006
  onUserMuted: (test: Partial<ICallEventsData['onUserMuted']>) => void;
3007
+ /**
3008
+ * @deprecated `switchToVideoCall` is deprecated and unsupported by the
3009
+ * underlying SDK, so this callback is never invoked.
3010
+ */
2789
3011
  onCallSwitchedToVideo: (data: Partial<ICallEventsData['onCallSwitchedToVideo']>) => void;
2790
3012
  onCallEnded: () => void;
2791
3013
  onSessionTimeout: () => void;
2792
3014
  onCallEndButtonPressed: () => void;
2793
- onAudioModesUpdated: (any: any) => void;
3015
+ onAudioModesUpdated: (audioModes: AudioMode[]) => void;
2794
3016
  onError: (error: CometChatCallsException) => void;
2795
3017
  }
2796
3018
  declare class OngoingCallListener {
@@ -2840,6 +3062,9 @@ declare class OngoingCallListener {
2840
3062
  onUserMuted?: IOngoingCallListener['onUserMuted'];
2841
3063
  /**
2842
3064
  * This event is triggered when an audio call is switched to a video call.
3065
+ *
3066
+ * @deprecated `switchToVideoCall` is deprecated and unsupported by the
3067
+ * underlying SDK, so this callback is never invoked.
2843
3068
  */
2844
3069
  onCallSwitchedToVideo?: IOngoingCallListener['onCallSwitchedToVideo'];
2845
3070
  constructor(eventObj: Partial<IOngoingCallListener>);
@@ -3559,6 +3784,133 @@ declare class Recording {
3559
3784
  static getRecordingFromJson(data: any): Recording;
3560
3785
  }
3561
3786
  //#endregion
3787
+ //#region src/v4/models/Transcription.d.ts
3788
+ /**
3789
+ * Represents a transcript artifact attached to a call log.
3790
+ *
3791
+ * Only present when the list request opted in via
3792
+ * `CallLogRequestBuilder.setHasTranscriptions(true)` — the server omits the
3793
+ * `transcriptions` array otherwise.
3794
+ *
3795
+ * A record is a *pointer* to a downloadable transcript file, not the transcript
3796
+ * text itself: fetch {@link Transcription.getTranscriptURL} separately to
3797
+ * retrieve the content.
3798
+ */
3799
+ declare class Transcription {
3800
+ /**
3801
+ * The transcript ID.
3802
+ */
3803
+ private tid;
3804
+ /**
3805
+ * The meeting ID; absent until the pipeline sends `uniqueMeetingId`.
3806
+ */
3807
+ private mid;
3808
+ /**
3809
+ * The room name of the meeting the transcript belongs to.
3810
+ */
3811
+ private roomName;
3812
+ /**
3813
+ * The start time of the transcribed meeting, in epoch seconds.
3814
+ */
3815
+ private startTime;
3816
+ /**
3817
+ * The end time of the transcribed meeting, in epoch seconds.
3818
+ */
3819
+ private endTime;
3820
+ /**
3821
+ * The transcript date.
3822
+ */
3823
+ private transcriptDate;
3824
+ /**
3825
+ * The URL of the downloadable transcript JSON.
3826
+ */
3827
+ private transcriptUrl;
3828
+ /**
3829
+ * Creates a new instance of the Transcription class.
3830
+ * @param data - The data to initialize the transcription object.
3831
+ */
3832
+ constructor(data: any);
3833
+ /**
3834
+ * Gets the transcript ID.
3835
+ * @returns The transcript ID.
3836
+ */
3837
+ getTid(): string;
3838
+ /**
3839
+ * Sets the transcript ID.
3840
+ * @param value - The transcript ID to set.
3841
+ */
3842
+ setTid(value: string): void;
3843
+ /**
3844
+ * Gets the meeting ID.
3845
+ * @returns The meeting ID.
3846
+ */
3847
+ getMid(): string;
3848
+ /**
3849
+ * Sets the meeting ID.
3850
+ * @param value - The meeting ID to set.
3851
+ */
3852
+ setMid(value: string): void;
3853
+ /**
3854
+ * Gets the room name.
3855
+ * @returns The room name.
3856
+ */
3857
+ getRoomName(): string;
3858
+ /**
3859
+ * Sets the room name.
3860
+ * @param value - The room name to set.
3861
+ */
3862
+ setRoomName(value: string): void;
3863
+ /**
3864
+ * Gets the start time of the transcribed meeting.
3865
+ * @returns The start time, in epoch seconds.
3866
+ */
3867
+ getStartTime(): number;
3868
+ /**
3869
+ * Sets the start time of the transcribed meeting.
3870
+ * @param value - The start time, in epoch seconds.
3871
+ */
3872
+ setStartTime(value: number): void;
3873
+ /**
3874
+ * Gets the end time of the transcribed meeting.
3875
+ * @returns The end time, in epoch seconds.
3876
+ */
3877
+ getEndTime(): number;
3878
+ /**
3879
+ * Sets the end time of the transcribed meeting.
3880
+ * @param value - The end time, in epoch seconds.
3881
+ */
3882
+ setEndTime(value: number): void;
3883
+ /**
3884
+ * Gets the transcript date.
3885
+ * @returns The transcript date.
3886
+ */
3887
+ getTranscriptDate(): string;
3888
+ /**
3889
+ * Sets the transcript date.
3890
+ * @param value - The transcript date to set.
3891
+ */
3892
+ setTranscriptDate(value: string): void;
3893
+ /**
3894
+ * Gets the URL of the downloadable transcript JSON.
3895
+ * @returns The transcript URL.
3896
+ */
3897
+ getTranscriptURL(): string;
3898
+ /**
3899
+ * Sets the URL of the downloadable transcript JSON.
3900
+ * @param value - The transcript URL to set.
3901
+ */
3902
+ setTranscriptURL(value: string): void;
3903
+ /**
3904
+ * Creates a new Transcription object from the given JSON data.
3905
+ *
3906
+ * Every key is passed through untouched, so newly-added server fields survive
3907
+ * without an SDK release.
3908
+ * @param data - The JSON data to create the Transcription object from.
3909
+ * @returns A new Transcription object.
3910
+ */
3911
+ static getTranscriptionFromJson(data: any): Transcription;
3912
+ }
3913
+ //#endregion
3562
3914
  //#region src/v4/models/CallLog.d.ts
3563
3915
  /**
3564
3916
  * Represents a call log.
@@ -3652,6 +4004,12 @@ declare class CallLog {
3652
4004
  * The recordings of the call log.
3653
4005
  */
3654
4006
  private recordings;
4007
+ /**
4008
+ * @type {Transcription[]}
4009
+ * The transcripts of the call log. Only populated when the request opted in
4010
+ * via `CallLogRequestBuilder.setHasTranscriptions(true)`.
4011
+ */
4012
+ private transcriptions;
3655
4013
  /**
3656
4014
  * Creates a new instance of CallLog.
3657
4015
  * @param data - The data to initialize the call log with.
@@ -3857,6 +4215,19 @@ declare class CallLog {
3857
4215
  * @param value - The recordings to set.
3858
4216
  */
3859
4217
  setRecordings(value: Recording[]): void;
4218
+ /**
4219
+ * Gets the transcripts of the call log.
4220
+ * @returns The transcripts of the call log, or an empty array when the server
4221
+ * omitted them — never `undefined`. The array is absent unless the request
4222
+ * opted in via `CallLogRequestBuilder.setHasTranscriptions(true)`, and the
4223
+ * server currently omits it even then, so callers must not have to null-check.
4224
+ */
4225
+ getTranscriptions(): Transcription[];
4226
+ /**
4227
+ * Sets the transcripts of the call log.
4228
+ * @param value - The transcripts to set.
4229
+ */
4230
+ setTranscriptions(value: Transcription[]): void;
3860
4231
  /**
3861
4232
  * Creates a new instance of CallLog from JSON data.
3862
4233
  * @param data - The JSON data to create the call log from.
@@ -3894,6 +4265,11 @@ declare class CallLogRequest {
3894
4265
  * Whether the call has a recording or not.
3895
4266
  */
3896
4267
  private hasRecording;
4268
+ /**
4269
+ * Whether to restrict the list to calls that have transcripts (and have the
4270
+ * server attach each call's `transcriptions` array).
4271
+ */
4272
+ private hasTranscriptions;
3897
4273
  /**
3898
4274
  * The category of call to filter by.
3899
4275
  */
@@ -3938,18 +4314,6 @@ declare class CallLogRequest {
3938
4314
  * The affix of the call log.
3939
4315
  */
3940
4316
  private affix;
3941
- /**
3942
- * The last affix of the call log.
3943
- */
3944
- private lastAffix;
3945
- /**
3946
- * The current method of the call log.
3947
- */
3948
- private currentMethod;
3949
- /**
3950
- * The pagination metadata of the call log.
3951
- */
3952
- private paginationMeta;
3953
4317
  /**
3954
4318
  * Creates a new CallLogRequest instance.
3955
4319
  * @param builder The builder object to use for constructing the request.
@@ -4002,6 +4366,7 @@ declare class CallLogRequestBuilder {
4002
4366
  callType: string;
4003
4367
  callStatus: string;
4004
4368
  hasRecording: boolean;
4369
+ hasTranscriptions: boolean;
4005
4370
  callCategory: string;
4006
4371
  callDirection: string;
4007
4372
  uid: string;
@@ -4031,6 +4396,14 @@ declare class CallLogRequestBuilder {
4031
4396
  * @returns The CallLogRequestBuilder object.
4032
4397
  */
4033
4398
  setHasRecording(hasRecording: boolean): this;
4399
+ /**
4400
+ * Sets whether only calls that have transcripts should be fetched. Opting in
4401
+ * also makes the server attach each call's `transcriptions` array, readable
4402
+ * via `CallLog.getTranscriptions()`.
4403
+ * @param hasTranscriptions - Whether to restrict the list to transcribed calls.
4404
+ * @returns The CallLogRequestBuilder object.
4405
+ */
4406
+ setHasTranscriptions(hasTranscriptions: boolean): this;
4034
4407
  /**
4035
4408
  * Sets the category of call to be fetched.
4036
4409
  * @param callCategory - The category of call to be fetched. Can be either 'call' or 'meet'.
@@ -4470,6 +4843,10 @@ declare class CallLogFilterParams {
4470
4843
  * Whether the call has recordings.
4471
4844
  */
4472
4845
  private hasRecording;
4846
+ /**
4847
+ * Whether the call has transcripts.
4848
+ */
4849
+ private hasTranscriptions;
4473
4850
  /**
4474
4851
  * The user ID.
4475
4852
  */
@@ -4478,10 +4855,6 @@ declare class CallLogFilterParams {
4478
4855
  * The group ID.
4479
4856
  */
4480
4857
  private guid;
4481
- /**
4482
- * Creates a new instance of the CallLogFilterParams class.
4483
- * @param data - The data to initialize the call log filter parameters object.
4484
- */
4485
4858
  /**
4486
4859
  * Sets the direction of the call.
4487
4860
  * @param value - The direction of the call.
@@ -4517,6 +4890,11 @@ declare class CallLogFilterParams {
4517
4890
  * @param value - Whether the call has recordings.
4518
4891
  */
4519
4892
  setHasRecordings(value: boolean): void;
4893
+ /**
4894
+ * Sets whether the call has transcripts.
4895
+ * @param value - Whether the call has transcripts.
4896
+ */
4897
+ setHasTranscriptions(value: boolean): void;
4520
4898
  /**
4521
4899
  * Sets the user ID.
4522
4900
  * @param value - The user ID.
@@ -4540,6 +4918,113 @@ declare class CallLogFilterParams {
4540
4918
  declare const addCallEventListener: typeof ListenerHandlers.addCallEventListener;
4541
4919
  declare const removeCallEventListener: typeof ListenerHandlers.removeCallEventListener;
4542
4920
  //#endregion
4921
+ //#region src/transcripts/types.d.ts
4922
+ /**
4923
+ * A single meeting transcript record, as returned by the paginated
4924
+ * transcript-retrieval API.
4925
+ *
4926
+ * Every field is optional: the server strips empty keys before responding, so a
4927
+ * sparse record is normal and must parse without error. Unknown server keys are
4928
+ * preserved untouched so newly-added fields survive without an SDK release.
4929
+ */
4930
+ interface Transcript {
4931
+ /** Transcript id. */
4932
+ tid?: string;
4933
+ /** Meeting id. */
4934
+ mid?: string;
4935
+ /** Room / session name. */
4936
+ roomName?: string;
4937
+ /** Meeting start time, epoch SECONDS. */
4938
+ startTime?: number;
4939
+ /** Meeting end time, epoch SECONDS. */
4940
+ endTime?: number;
4941
+ /** Meeting URL. */
4942
+ url?: string;
4943
+ /** Human-readable transcript date. */
4944
+ transcriptDate?: string;
4945
+ /**
4946
+ * URL to fetch the transcript content. The content itself must be fetched
4947
+ * separately.
4948
+ */
4949
+ transcriptUrl?: string;
4950
+ /** Arbitrary server-provided metadata. */
4951
+ metaData?: Record<string, unknown>;
4952
+ }
4953
+ //#endregion
4954
+ //#region src/transcripts/TranscriptRequest.d.ts
4955
+ /**
4956
+ * A paginated request for a meeting's transcripts. Created via
4957
+ * {@link TranscriptRequestBuilder.build}. Holds the pagination cursor and issues
4958
+ * one page per `fetchNext()` / `fetchPrevious()` call.
4959
+ */
4960
+ declare class TranscriptRequest {
4961
+ private readonly sessionId;
4962
+ private readonly limit;
4963
+ /** Total pages reported by the server (`null` = no response read yet). */
4964
+ private totalPages;
4965
+ /** Last page successfully fetched (`0` = none fetched yet). */
4966
+ private currentPage;
4967
+ /** Whether a fetch is currently in flight. */
4968
+ private inProgress;
4969
+ constructor(builder: TranscriptRequestBuilder);
4970
+ /**
4971
+ * Fetches the next page of transcripts. Resolves `[]` once the last page has
4972
+ * been reached (including the empty-session `total_pages: 0` case).
4973
+ * @returns A promise resolving to the page's transcripts.
4974
+ * @throws Rejects with a {@link CometChatCallsException} on error.
4975
+ */
4976
+ fetchNext(): Promise<Transcript[]>;
4977
+ /**
4978
+ * Fetches the previous page of transcripts. Resolves `[]` when there is no
4979
+ * previous page (a fresh request, or the first page) — it never requests
4980
+ * `page < 1`.
4981
+ * @returns A promise resolving to the page's transcripts, or `[]`.
4982
+ * @throws Rejects with a {@link CometChatCallsException} on error.
4983
+ */
4984
+ fetchPrevious(): Promise<Transcript[] | []>;
4985
+ private makeAPICall;
4986
+ /**
4987
+ * Advances the pagination cursor from the response `meta`. A missing / malformed
4988
+ * `meta` is treated as a single page (the fetched rows still resolve — we never
4989
+ * throw a raw `TypeError` the way the CallLog builder does).
4990
+ */
4991
+ private updatePagination;
4992
+ }
4993
+ /**
4994
+ * Builder for a {@link TranscriptRequest}.
4995
+ *
4996
+ * @example
4997
+ * const request = new CometChatCalls.TranscriptRequestBuilder()
4998
+ * .setSessionId('v1.us.2547167fe69871fd.pranav')
4999
+ * .setLimit(10)
5000
+ * .build();
5001
+ * const page = await request.fetchNext();
5002
+ */
5003
+ declare class TranscriptRequestBuilder {
5004
+ sessionId: string;
5005
+ limit: number;
5006
+ /**
5007
+ * Sets the session (meeting) id whose transcripts to fetch. Required.
5008
+ * @param sessionId - The meeting session id.
5009
+ * @returns This builder.
5010
+ */
5011
+ setSessionId(sessionId: string): this;
5012
+ /**
5013
+ * Sets the page size. Defaults to 30 and is clamped to the range 1–1000.
5014
+ * Non-finite values are ignored.
5015
+ * @param limit - The number of transcripts per page.
5016
+ * @returns This builder.
5017
+ */
5018
+ setLimit(limit: number): this;
5019
+ /**
5020
+ * Builds the {@link TranscriptRequest}.
5021
+ * @returns A ready-to-use request.
5022
+ * @throws {CometChatCallsException} `NOT_INITIALIZED` if `CometChatCalls.init()`
5023
+ * has not been called, or `SESSION_ID_REQUIRED` if no session id was set.
5024
+ */
5025
+ build(): TranscriptRequest;
5026
+ }
5027
+ //#endregion
4543
5028
  //#region src/CometChatCalls.d.ts
4544
5029
  interface User {
4545
5030
  uid: string;
@@ -4590,6 +5075,8 @@ declare class CometChatCalls extends SessionMethodsCore {
4590
5075
  static Component: typeof AppReactNativeSDK;
4591
5076
  static CallLogRequestBuilder: typeof CallLogRequestBuilder;
4592
5077
  static CallLog: typeof CallLog;
5078
+ static Transcription: typeof Transcription;
5079
+ static TranscriptRequestBuilder: typeof TranscriptRequestBuilder;
4593
5080
  /**
4594
5081
  * Initializes the CometChat Calls SDK with the provided app settings.
4595
5082
  * Must be called before any other SDK methods.
@@ -4751,4 +5238,4 @@ declare class CometChatCalls extends SessionMethodsCore {
4751
5238
  static disablePictureInPictureLayout(): void;
4752
5239
  }
4753
5240
  //#endregion
4754
- export { CometChatCalls };
5241
+ export { CometChatCalls, type Transcript };