@livo-tv/sdk 1.4.0 → 1.6.0

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.
@@ -9,6 +9,7 @@ type StudioStreamSummary = {
9
9
  title: string;
10
10
  status: string;
11
11
  encoderLostAt?: number | null;
12
+ captionsEnabled?: boolean;
12
13
  };
13
14
  type StudioSession = {
14
15
  authToken: string;
@@ -113,6 +114,15 @@ declare class StudioControlClient {
113
114
  declare function createStudioControlClient(options: StudioControlClientOptions): StudioControlClient;
114
115
  declare function controlActionsFromClient(client: StudioControlClient): StudioControlActions;
115
116
 
117
+ type StudioVideoFilter = "none" | "grayscale" | "sepia" | "warm" | "cool" | "bright";
118
+ type StudioVideoBackground = "none" | "blur" | "image";
119
+ type StudioVideoEffectsConfig = {
120
+ background: StudioVideoBackground;
121
+ blurStrength: number;
122
+ imageUrl?: string;
123
+ filter: StudioVideoFilter;
124
+ };
125
+
116
126
  type StudioDeviceKind = "audio" | "video" | "speaker";
117
127
  type StudioDeviceOption = {
118
128
  deviceId: string;
@@ -212,6 +222,8 @@ type StudioMeetingHandle = {
212
222
  listDevices: () => Promise<StudioDevices>;
213
223
  setDevice: (kind: StudioDeviceKind, deviceId: string) => Promise<void>;
214
224
  setDisplayName: (name: string) => Promise<void>;
225
+ setVideoEffects: (config: StudioVideoEffectsConfig) => Promise<void>;
226
+ videoEffects: () => StudioVideoEffectsConfig;
215
227
  livestreamState: () => string | null;
216
228
  roomState: () => string | null;
217
229
  startLivestream: () => Promise<void>;
@@ -316,6 +328,9 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
316
328
  pipTitle: string;
317
329
  pipError: string;
318
330
  screenUnsupportedDevice: string;
331
+ screenDownloadAppTitle: string;
332
+ screenDownloadAppAction: string;
333
+ screenDownloadAppDismiss: string;
319
334
  screenNotAllowed: string;
320
335
  askToShare: string;
321
336
  shareRequested: string;
@@ -385,6 +400,36 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
385
400
  chatUnpin: string;
386
401
  chatSave: string;
387
402
  waitingSkeleton: string;
403
+ more: string;
404
+ captions: string;
405
+ captionsOn: string;
406
+ captionsOff: string;
407
+ captionsNotReady: string;
408
+ captionsDelayed: string;
409
+ captionsLanguage: string;
410
+ captionsSize: string;
411
+ captionsSizeS: string;
412
+ captionsSizeM: string;
413
+ captionsSizeL: string;
414
+ settingsGeneral: string;
415
+ settingsAudio: string;
416
+ settingsVideo: string;
417
+ settingsEffects: string;
418
+ settingsSubtitles: string;
419
+ effectNone: string;
420
+ effectBlur: string;
421
+ effectBlurStrong: string;
422
+ effectBackgrounds: string;
423
+ effectFilters: string;
424
+ effectFilterNone: string;
425
+ effectFilterGrayscale: string;
426
+ effectFilterSepia: string;
427
+ effectFilterWarm: string;
428
+ effectFilterCool: string;
429
+ effectFilterBright: string;
430
+ localeEn: string;
431
+ localeEs: string;
432
+ localePt: string;
388
433
  };
389
434
 
390
435
  type StudioDeviceSelection = {
@@ -393,7 +438,7 @@ type StudioDeviceSelection = {
393
438
  speaker: string;
394
439
  };
395
440
 
396
- declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, }: {
441
+ declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, appDownloadUrl, captionsBaseUrl, apiUrl, cdnBase, }: {
397
442
  session: StudioSession;
398
443
  meeting: StudioMeetingHandle;
399
444
  control: StudioControlActions;
@@ -410,6 +455,10 @@ declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejo
410
455
  initialCameraOn?: boolean;
411
456
  initialMuted?: boolean;
412
457
  initialDevices?: StudioDeviceSelection;
458
+ appDownloadUrl?: string;
459
+ captionsBaseUrl?: string;
460
+ apiUrl?: string;
461
+ cdnBase?: string;
413
462
  }): react.JSX.Element;
414
463
 
415
464
  declare function StudioSkeleton(): react.JSX.Element;
@@ -465,7 +514,7 @@ declare function StudioWindowGate({ lockKey, allowTakeover, labels, children, }:
465
514
  children: ReactNode;
466
515
  }): react.JSX.Element;
467
516
 
468
- declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, }: {
517
+ declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, appDownloadUrl, }: {
469
518
  token: string;
470
519
  apiUrl?: string;
471
520
  labels: StudioRoomLabels;
@@ -474,6 +523,7 @@ declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chr
474
523
  chrome?: ReactNode;
475
524
  playerOrigin?: string;
476
525
  theme?: string | null;
526
+ appDownloadUrl?: string;
477
527
  }): react.JSX.Element;
478
528
 
479
529
  type StudioLobbyLabels = {
@@ -494,7 +544,7 @@ type StudioLobbyLabels = {
494
544
  joinBusy: string;
495
545
  endedTitle: string;
496
546
  };
497
- declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, }: {
547
+ declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, appDownloadUrl, }: {
498
548
  token: string;
499
549
  apiUrl?: string;
500
550
  labels: StudioRoomLabels;
@@ -502,6 +552,7 @@ declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, pl
502
552
  embed?: boolean;
503
553
  playerOrigin?: string;
504
554
  theme?: string | null;
555
+ appDownloadUrl?: string;
505
556
  }): react.JSX.Element;
506
557
 
507
558
  declare function useRealtimeKitMeeting(authToken: string | null, generation?: number): {
@@ -526,5 +577,9 @@ declare function getStudioJoinStatus(token: string, apiUrl?: string, fetchFn?: t
526
577
  streamStatus: string | null;
527
578
  } | "ended">;
528
579
  declare function getPublicStreamStatus(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<string | null>;
580
+ declare function getPublicStreamMeta(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<{
581
+ status: string;
582
+ captionsEnabled: boolean;
583
+ } | null>;
529
584
 
530
- export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };
585
+ export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamMeta, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };
@@ -9,6 +9,7 @@ type StudioStreamSummary = {
9
9
  title: string;
10
10
  status: string;
11
11
  encoderLostAt?: number | null;
12
+ captionsEnabled?: boolean;
12
13
  };
13
14
  type StudioSession = {
14
15
  authToken: string;
@@ -113,6 +114,15 @@ declare class StudioControlClient {
113
114
  declare function createStudioControlClient(options: StudioControlClientOptions): StudioControlClient;
114
115
  declare function controlActionsFromClient(client: StudioControlClient): StudioControlActions;
115
116
 
117
+ type StudioVideoFilter = "none" | "grayscale" | "sepia" | "warm" | "cool" | "bright";
118
+ type StudioVideoBackground = "none" | "blur" | "image";
119
+ type StudioVideoEffectsConfig = {
120
+ background: StudioVideoBackground;
121
+ blurStrength: number;
122
+ imageUrl?: string;
123
+ filter: StudioVideoFilter;
124
+ };
125
+
116
126
  type StudioDeviceKind = "audio" | "video" | "speaker";
117
127
  type StudioDeviceOption = {
118
128
  deviceId: string;
@@ -212,6 +222,8 @@ type StudioMeetingHandle = {
212
222
  listDevices: () => Promise<StudioDevices>;
213
223
  setDevice: (kind: StudioDeviceKind, deviceId: string) => Promise<void>;
214
224
  setDisplayName: (name: string) => Promise<void>;
225
+ setVideoEffects: (config: StudioVideoEffectsConfig) => Promise<void>;
226
+ videoEffects: () => StudioVideoEffectsConfig;
215
227
  livestreamState: () => string | null;
216
228
  roomState: () => string | null;
217
229
  startLivestream: () => Promise<void>;
@@ -316,6 +328,9 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
316
328
  pipTitle: string;
317
329
  pipError: string;
318
330
  screenUnsupportedDevice: string;
331
+ screenDownloadAppTitle: string;
332
+ screenDownloadAppAction: string;
333
+ screenDownloadAppDismiss: string;
319
334
  screenNotAllowed: string;
320
335
  askToShare: string;
321
336
  shareRequested: string;
@@ -385,6 +400,36 @@ declare function studioRoomLabels(t: (key: string, values?: Record<string, strin
385
400
  chatUnpin: string;
386
401
  chatSave: string;
387
402
  waitingSkeleton: string;
403
+ more: string;
404
+ captions: string;
405
+ captionsOn: string;
406
+ captionsOff: string;
407
+ captionsNotReady: string;
408
+ captionsDelayed: string;
409
+ captionsLanguage: string;
410
+ captionsSize: string;
411
+ captionsSizeS: string;
412
+ captionsSizeM: string;
413
+ captionsSizeL: string;
414
+ settingsGeneral: string;
415
+ settingsAudio: string;
416
+ settingsVideo: string;
417
+ settingsEffects: string;
418
+ settingsSubtitles: string;
419
+ effectNone: string;
420
+ effectBlur: string;
421
+ effectBlurStrong: string;
422
+ effectBackgrounds: string;
423
+ effectFilters: string;
424
+ effectFilterNone: string;
425
+ effectFilterGrayscale: string;
426
+ effectFilterSepia: string;
427
+ effectFilterWarm: string;
428
+ effectFilterCool: string;
429
+ effectFilterBright: string;
430
+ localeEn: string;
431
+ localeEs: string;
432
+ localePt: string;
388
433
  };
389
434
 
390
435
  type StudioDeviceSelection = {
@@ -393,7 +438,7 @@ type StudioDeviceSelection = {
393
438
  speaker: string;
394
439
  };
395
440
 
396
- declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, }: {
441
+ declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejoin, labels, reducedMotion, embed, chrome, playerOrigin, windowGate, initialCameraOn, initialMuted, initialDevices, appDownloadUrl, captionsBaseUrl, apiUrl, cdnBase, }: {
397
442
  session: StudioSession;
398
443
  meeting: StudioMeetingHandle;
399
444
  control: StudioControlActions;
@@ -410,6 +455,10 @@ declare function StudioRoom({ session, meeting, control, onRefreshStatus, onRejo
410
455
  initialCameraOn?: boolean;
411
456
  initialMuted?: boolean;
412
457
  initialDevices?: StudioDeviceSelection;
458
+ appDownloadUrl?: string;
459
+ captionsBaseUrl?: string;
460
+ apiUrl?: string;
461
+ cdnBase?: string;
413
462
  }): react.JSX.Element;
414
463
 
415
464
  declare function StudioSkeleton(): react.JSX.Element;
@@ -465,7 +514,7 @@ declare function StudioWindowGate({ lockKey, allowTakeover, labels, children, }:
465
514
  children: ReactNode;
466
515
  }): react.JSX.Element;
467
516
 
468
- declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, }: {
517
+ declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chrome, playerOrigin, theme, appDownloadUrl, }: {
469
518
  token: string;
470
519
  apiUrl?: string;
471
520
  labels: StudioRoomLabels;
@@ -474,6 +523,7 @@ declare function LivoHostStudio({ token, apiUrl, labels, redeemError, embed, chr
474
523
  chrome?: ReactNode;
475
524
  playerOrigin?: string;
476
525
  theme?: string | null;
526
+ appDownloadUrl?: string;
477
527
  }): react.JSX.Element;
478
528
 
479
529
  type StudioLobbyLabels = {
@@ -494,7 +544,7 @@ type StudioLobbyLabels = {
494
544
  joinBusy: string;
495
545
  endedTitle: string;
496
546
  };
497
- declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, }: {
547
+ declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, playerOrigin, theme, appDownloadUrl, }: {
498
548
  token: string;
499
549
  apiUrl?: string;
500
550
  labels: StudioRoomLabels;
@@ -502,6 +552,7 @@ declare function LivoGuestStudio({ token, apiUrl, labels, lobbyLabels, embed, pl
502
552
  embed?: boolean;
503
553
  playerOrigin?: string;
504
554
  theme?: string | null;
555
+ appDownloadUrl?: string;
505
556
  }): react.JSX.Element;
506
557
 
507
558
  declare function useRealtimeKitMeeting(authToken: string | null, generation?: number): {
@@ -526,5 +577,9 @@ declare function getStudioJoinStatus(token: string, apiUrl?: string, fetchFn?: t
526
577
  streamStatus: string | null;
527
578
  } | "ended">;
528
579
  declare function getPublicStreamStatus(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<string | null>;
580
+ declare function getPublicStreamMeta(streamId: string, apiUrl?: string, fetchFn?: typeof fetch): Promise<{
581
+ status: string;
582
+ captionsEnabled: boolean;
583
+ } | null>;
529
584
 
530
- export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };
585
+ export { LivoGuestStudio, LivoHostStudio, StudioApiError, type StudioControlActions, StudioControlClient, type StudioControlClientOptions, StudioControlError, StudioGuestLobby, type StudioLobbyLabels, type StudioMeetingHandle, type StudioRole, StudioRoom, type StudioRoomLabels, type StudioSession, StudioSkeleton, StudioWindowGate, StudioWindowGateContext, controlActionsFromClient, createStudioControlClient, getPublicStreamMeta, getPublicStreamStatus, getStudioJoinStatus, joinStudioGuest, redeemStudioHost, studioErrorCode, studioRoomLabels, usePrefersReducedMotion, useRealtimeKitMeeting, useStudioWindowGate };