@tivio/sdk-react 9.0.0 → 9.1.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.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,26 @@
1
1
  import { ComponentType } from 'react';
2
+ import { DocumentReference } from '@firebase/firestore-types';
3
+ import firebase from '@firebase/app-types';
2
4
  import { FunctionComponentElement } from 'react';
3
5
  import { GeoPoint } from '@firebase/firestore-types';
4
6
  import { OperatingSystem } from 'detect-browser';
7
+ import type { PaletteType } from '@material-ui/core';
5
8
  import { default as React_2 } from 'react';
6
9
  import { RecommendationsQuery } from '@algolia/recommend';
10
+ import type { TagManagerArgs } from 'react-gtm-module';
11
+
12
+ /**
13
+ * @public
14
+ */
15
+ export declare interface AddCommentOptions {
16
+ parentCommentId?: string;
17
+ text: string;
18
+ videoTime?: number;
19
+ }
20
+
21
+ export declare type AddEditCommentResponse = {
22
+ id: string;
23
+ };
7
24
 
8
25
  /**
9
26
  * @public
@@ -224,6 +241,10 @@ export declare enum ALGOLIA_INDEX_NAME {
224
241
  USERS = "users"
225
242
  }
226
243
 
244
+ export declare interface AllStargazeCreatorsWithVoucherSubscriptionsResponse {
245
+ creators: CreatorsWithVoucherSubscriptions[];
246
+ }
247
+
227
248
  /**
228
249
  * List of conversion types that we send to analytics.
229
250
  */
@@ -292,11 +313,20 @@ export declare interface AnalyticsInterface {
292
313
  /**
293
314
  * @public
294
315
  */
295
- export declare interface Application {
296
- name: Translation;
316
+ export declare interface Application extends RowItem {
317
+ id: string;
318
+ organizationId?: string;
319
+ itemType: ROW_ITEM_TYPES.APPLICATION;
320
+ name: string;
297
321
  type: ApplicationType;
298
322
  urlHandle: string;
299
- screens: ApplicationScreenConfig[] | null;
323
+ applicationScreens: ApplicationScreenConfig[] | null;
324
+ screenConfigs: ScreenConfig[] | null;
325
+ logo: string | null;
326
+ cover: string | null;
327
+ videosCount: number | null;
328
+ organization?: Organization;
329
+ isEnabled: boolean;
300
330
  }
301
331
 
302
332
  /**
@@ -314,6 +344,16 @@ export declare enum ApplicationType {
314
344
  ORGANIZATION = "ORGANIZATION"
315
345
  }
316
346
 
347
+ /**
348
+ * @public
349
+ */
350
+ export declare interface ApplyScreenConditionPayload {
351
+ embedUrl?: string;
352
+ userPurchases?: Purchase[];
353
+ isSignedIn?: boolean;
354
+ condition: RenderCondition;
355
+ }
356
+
317
357
  /**
318
358
  * @public
319
359
  */
@@ -322,6 +362,45 @@ export declare type ArrisDeviceInfo = {
322
362
  model?: 'VIP1003' | 'VIP1113' | 'VIP5305';
323
363
  };
324
364
 
365
+ /**
366
+ * @public
367
+ */
368
+ export declare interface Article extends RowItem, MonetizableItem, ReactableContent {
369
+ id: string;
370
+ itemType: ROW_ITEM_TYPES.ARTICLE;
371
+ blocks: ArticleBlock[];
372
+ cover: string;
373
+ organizationId?: string;
374
+ }
375
+
376
+ /**
377
+ * @public
378
+ */
379
+ export declare interface ArticleBlock {
380
+ id: string;
381
+ type: ArticleBlockType;
382
+ htmlContent?: string;
383
+ imageUrl?: string;
384
+ textContent?: string;
385
+ videoId?: string;
386
+ }
387
+
388
+ export declare interface ArticleBlockField extends Omit<ArticleBlock, 'textContent' | 'htmlContent'> {
389
+ textContent?: Translation;
390
+ htmlContent?: Translation;
391
+ }
392
+
393
+ /**
394
+ * @public
395
+ */
396
+ export declare type ArticleBlockType = 'PARAGRAPH' | 'IMAGE' | 'VIDEO' | 'HEADING' | 'PAYWALL';
397
+
398
+ export declare interface ArticleTileSpecificData {
399
+ organizationId: string;
400
+ blocks: ArticleBlockField[];
401
+ assets?: AssetsField;
402
+ }
403
+
325
404
  /**
326
405
  * @public
327
406
  */
@@ -339,7 +418,14 @@ export declare type Assets = {
339
418
  /**
340
419
  * @public
341
420
  */
342
- export declare type AssetType = 'circled' | 'landscape' | 'portrait';
421
+ export declare interface AssetsField<TAsset extends ScalableAsset = ScalableAsset> {
422
+ [assetName: string]: TAsset;
423
+ }
424
+
425
+ /**
426
+ * @public
427
+ */
428
+ export declare type AssetType = 'circled' | 'landscape' | 'portrait' | 'square';
343
429
 
344
430
  declare type Attributes = {
345
431
  created: string;
@@ -354,36 +440,45 @@ declare type Attributes = {
354
440
  */
355
441
  export declare interface AvailableSeason {
356
442
  seasonNumber: number;
443
+ seasonName?: string;
444
+ }
445
+
446
+ export declare interface AvailableSeasonField {
447
+ seasonNumber: number;
448
+ seasonName?: Translation;
357
449
  }
358
450
 
359
451
  /**
360
452
  * @public
361
453
  */
362
- export declare type AvatarProps = {
454
+ export declare interface AvatarProps {
363
455
  cover?: string;
364
456
  isLoading?: boolean;
365
457
  size?: number;
366
- };
458
+ }
367
459
 
368
460
  /**
369
461
  * @public
370
462
  */
371
463
  export declare type BadRequestError = Error & {
372
464
  details?: {
373
- reason?: 'DOES_NOT_EXIST' | 'EXPIRED' | 'ALREADY_USED';
465
+ reason?: 'DOES_NOT_EXIST' | 'EXPIRED' | 'ALREADY_USED' | 'ALREADY_USED_BY_CURRENT_USER';
374
466
  };
375
467
  };
376
468
 
377
469
  export declare enum BannerItemComponent {
378
470
  CLASSIC = "CLASSIC",
379
471
  SPLIT = "SPLIT",
380
- BACKGROUND = "BACKGROUND"
472
+ BACKGROUND = "BACKGROUND",
473
+ BACKGROUND_BLUR = "BACKGROUND_BLUR",
474
+ ORGANIZATION_BANNER = "ORGANIZATION_BANNER",
475
+ CAROUSEL = "CAROUSEL"
381
476
  }
382
477
 
383
478
  /**
384
479
  * @public
385
480
  */
386
- export declare type BannerProps = {
481
+ export declare interface BannerProps {
387
482
  isLoading: boolean;
388
483
  text: string;
389
484
  description?: string;
@@ -391,7 +486,7 @@ export declare type BannerProps = {
391
486
  onClick?: () => void;
392
487
  hoverable: boolean;
393
488
  height: number;
394
- cover: string;
489
+ cover?: string | null;
395
490
  overlay: boolean;
396
491
  price: string;
397
492
  borderRadius?: string | number;
@@ -399,7 +494,13 @@ export declare type BannerProps = {
399
494
  onButtonClick?: () => void;
400
495
  buttonHref?: string;
401
496
  numberOfLines?: number;
402
- };
497
+ organizationId?: string;
498
+ organizationName?: string;
499
+ organizationLogo?: string;
500
+ organizationLogoLandscape?: string;
501
+ organizationHandle?: string;
502
+ organizationProfilePhoto?: string;
503
+ }
403
504
 
404
505
  /**
405
506
  * @public
@@ -500,6 +601,31 @@ export declare type Chapter = any;
500
601
  */
501
602
  export declare type CmpConfig = 'default' | 'debug' | 'none';
502
603
 
604
+ /**
605
+ * @public
606
+ */
607
+ declare interface Comment_2 {
608
+ id: string;
609
+ text: string;
610
+ videoTime: number | null;
611
+ createdAt: Date;
612
+ editedAt: Date | null;
613
+ user: CommentUser | null;
614
+ reactions: Record<string, number> | null;
615
+ repliesCount: number | null;
616
+ isReady: boolean;
617
+ updateRepliesCount: (increment: boolean) => void;
618
+ }
619
+ export { Comment_2 as Comment }
620
+
621
+ /**
622
+ * @public
623
+ */
624
+ export declare interface CommentUser {
625
+ name: string;
626
+ avatarUrl: string | null;
627
+ }
628
+
503
629
  /**
504
630
  * TODO same name as core-js entity, not convenient
505
631
  * @public
@@ -592,6 +718,15 @@ export declare interface ConsumedAds {
592
718
  preroll: boolean;
593
719
  }
594
720
 
721
+ /**
722
+ * @public
723
+ */
724
+ export declare interface ContentAvailability {
725
+ from: Date;
726
+ to: Date | null;
727
+ manual: boolean;
728
+ }
729
+
595
730
  /**
596
731
  * @public
597
732
  */
@@ -607,11 +742,11 @@ export declare enum ContentSortEnum {
607
742
  /**
608
743
  * @public
609
744
  */
610
- export declare type ContentSortPickerProps = {
745
+ export declare interface ContentSortPickerProps {
611
746
  value: ContentSortEnum;
612
747
  isSeries?: boolean;
613
748
  onChange: (value: ContentSortEnum) => void;
614
- };
749
+ }
615
750
 
616
751
  /**
617
752
  * @public
@@ -694,12 +829,12 @@ export declare interface ConversionsTargetItem {
694
829
  * @public
695
830
  * @TODO move somewhere else
696
831
  */
697
- export declare type CoverPadding = {
832
+ export declare interface CoverPadding {
698
833
  top?: number;
699
834
  bottom?: number;
700
835
  left?: number;
701
836
  right?: number;
702
- };
837
+ }
703
838
 
704
839
  /**
705
840
  * @public
@@ -725,6 +860,8 @@ export declare interface CreateUserPayload {
725
860
  referralToken?: string;
726
861
  username?: string;
727
862
  phoneNumber?: string;
863
+ authUserId?: string;
864
+ isAnonymous?: boolean;
728
865
  }
729
866
 
730
867
  /**
@@ -732,6 +869,12 @@ export declare interface CreateUserPayload {
732
869
  */
733
870
  export declare type CreateUserWithEmailAndPassword = (email: string, password: string, username?: string, phoneNumber?: string, referralToken?: string) => Promise<string | null>;
734
871
 
872
+ export declare interface CreatorsWithVoucherSubscriptions {
873
+ id: string;
874
+ logo: string;
875
+ name: string;
876
+ }
877
+
735
878
  /**
736
879
  * @public
737
880
  */
@@ -743,10 +886,17 @@ export declare const CURRENCIES: string[];
743
886
  */
744
887
  export declare type Currency = 'CZK' | 'EUR' | 'USD';
745
888
 
889
+ /**
890
+ * Necessary because keys in cloud function config cannot contain upper-case letters.
891
+ * Has to be in sync with {@link Currency}.
892
+ */
893
+ export declare type CurrencyLowerCase = 'czk' | 'eur' | 'usd';
894
+
746
895
  /**
747
896
  * @public
748
897
  */
749
898
  export declare enum CustomerId {
899
+ CESTMIR_STRAKATY = "CESTMIR_STRAKATY",
750
900
  CNC = "CNC",
751
901
  DVTV = "DVTV",
752
902
  DVTV_DEV = "DVTV_DEV",
@@ -756,17 +906,31 @@ export declare enum CustomerId {
756
906
  INVESTICNI_PRUVODCE = "INVESTICNI_PRUVODCE",
757
907
  INVESTOREES = "INVESTOREES",
758
908
  JOJ = "JOJ",
909
+ KLUCI_Z_PRAHY = "KLUCI_Z_PRAHY",
759
910
  MALL = "MALL",
760
911
  MEDIAR = "MEDIAR",
761
912
  NANGU_DEV = "NANGU_DEV",
762
913
  O2 = "O2",
763
914
  OKTAGON = "OKTAGON",
915
+ ONDREJ_AUST = "ONDREJ_AUST",
764
916
  ONDREJ_KOBERSKY = "ONDREJ_KOBERSKY",
917
+ REALTALK = "REALTALK",
765
918
  STARMAX = "STARMAX",
766
- STORYBOOK = "STORYBOOK",
919
+ STARGAZE = "STARGAZE",
920
+ STORYBOOK = "STORYBOOK",// dev
767
921
  TIVIO = "TIVIO",
922
+ TIVIO_PRO = "TIVIO_PRO",
768
923
  U_KULATEHO_STOLU = "U_KULATEHO_STOLU",
769
- STARME = "STARME"
924
+ VIRTUAL_CHANNEL_VIDEOS = "VIRTUAL_CHANNEL_VIDEOS",
925
+ VOJTA_ZIZKA = "VOJTA_ZIZKA",
926
+ LIGA_NARUBY = "LIGA_NARUBY",
927
+ VIC_NEZ_SI_MYSLITE = "VIC_NEZ_SI_MYSLITE"
928
+ }
929
+
930
+ export declare interface CustomScript {
931
+ src: string;
932
+ event?: EventName;
933
+ isAsync?: boolean;
770
934
  }
771
935
 
772
936
  /**
@@ -802,14 +966,19 @@ export declare const DEFAULT_ORDER_BY: {
802
966
  */
803
967
  export declare type DefaultOrderByField = 'created';
804
968
 
969
+ export declare type DeleteCommentResponse = {
970
+ deleted: boolean;
971
+ };
972
+
805
973
  /**
806
974
  * @public
807
975
  */
808
- export declare type DetailedPrice = {
976
+ export declare interface DetailedPrice {
809
977
  amount: number;
810
978
  currency: Currency;
811
979
  frequency?: MONETIZATION_FREQUENCY;
812
- };
980
+ durationDays?: number;
981
+ }
813
982
 
814
983
  /**
815
984
  * @public
@@ -834,10 +1003,10 @@ declare type Disposer_2 = () => void;
834
1003
  /**
835
1004
  * @public
836
1005
  */
837
- export declare type DividerProps = {
1006
+ export declare interface DividerProps {
838
1007
  verticalSpacing?: number;
839
1008
  horizontalSpacing?: number;
840
- };
1009
+ }
841
1010
 
842
1011
  /**
843
1012
  * @public
@@ -898,6 +1067,15 @@ export declare enum DurationUnits {
898
1067
  MONTH = "month"
899
1068
  }
900
1069
 
1070
+ /**
1071
+ * @public
1072
+ */
1073
+ export declare interface EditCommentOptions extends Omit<AddCommentOptions, 'parentCommentId'> {
1074
+ commentId: string;
1075
+ text: string;
1076
+ videoTime?: number;
1077
+ }
1078
+
901
1079
  /**
902
1080
  * Represents a SendGrid transactional template.
903
1081
  */
@@ -1007,6 +1185,10 @@ export declare type Empty = void | Promise<void> | undefined | Promise<undefined
1007
1185
  */
1008
1186
  declare type Empty_2 = void | Promise<void> | undefined | Promise<undefined>;
1009
1187
 
1188
+ export declare enum EventName {
1189
+ REGISTRATION_DONE = "REGISTRATION_DONE"
1190
+ }
1191
+
1010
1192
  /**
1011
1193
  * @public
1012
1194
  */
@@ -1035,6 +1217,21 @@ export declare const fetchBundle: (secret: string, conf: InternalConfig) => Prom
1035
1217
  */
1036
1218
  declare type FetchPackage = (url: string) => Promise<string>;
1037
1219
 
1220
+ /**
1221
+ * @public
1222
+ */
1223
+ export declare type FollowedOrganizationData = {
1224
+ id: string;
1225
+ name: string;
1226
+ application: {
1227
+ id: string;
1228
+ urlHandle: string;
1229
+ logo?: string;
1230
+ logoLandscape?: string;
1231
+ profilePhoto?: string;
1232
+ };
1233
+ };
1234
+
1038
1235
  /**
1039
1236
  * Counterpart for {@link ForbiddenError} from @tivio/api.
1040
1237
  * @public
@@ -1064,6 +1261,15 @@ export declare interface GenericOnCallError extends Error {
1064
1261
  details?: Record<string, string>;
1065
1262
  }
1066
1263
 
1264
+ /**
1265
+ * @public
1266
+ */
1267
+ export declare type GeoBlocking = {
1268
+ whitelist: Array<any>;
1269
+ } | {
1270
+ blacklist: Array<any>;
1271
+ };
1272
+
1067
1273
  export declare interface GetBaseAnalyticsRequest {
1068
1274
  /**
1069
1275
  * Id of organization to return analytics data.
@@ -1087,6 +1293,12 @@ export declare interface GetMonetizationsAnalyticsResponse {
1087
1293
  monetizationsAnalytics: MonetizationSummaryItem[];
1088
1294
  }
1089
1295
 
1296
+ export declare type GetMonetizationsCountsAnalyticsRequest = GetBaseAnalyticsRequest;
1297
+
1298
+ export declare interface GetMonetizationsCountsAnalyticsResponse {
1299
+ monetizationsCountsAnalytics: MonetizationsCountsSummaryItem[];
1300
+ }
1301
+
1090
1302
  /**
1091
1303
  * Share singleton instance
1092
1304
  * @public
@@ -1096,9 +1308,9 @@ export declare const getPubSub: () => PubSub;
1096
1308
  /**
1097
1309
  * @public
1098
1310
  */
1099
- export declare type GetPurchasableMonetizationsOptions = {
1311
+ export declare interface GetPurchasableMonetizationsOptions {
1100
1312
  includeMonetizationsWithPurchaseDisabled: boolean;
1101
- };
1313
+ }
1102
1314
 
1103
1315
  /**
1104
1316
  * Response from Tivio getPurchaseInfo HTTP endpoint.
@@ -1115,6 +1327,8 @@ export declare type GetPurchaseInfoResponse = {
1115
1327
  };
1116
1328
  };
1117
1329
 
1330
+ export declare type GetRowsInScreenResponse = PaginatedResponse<RowInScreen, 'screenId'>;
1331
+
1118
1332
  export declare interface GetSourceUrlRequest {
1119
1333
  /**
1120
1334
  * Id of the document to return source for.
@@ -1186,6 +1400,8 @@ export declare interface GetSourceUrlResponse {
1186
1400
  audioOnly?: boolean;
1187
1401
  }
1188
1402
 
1403
+ export declare type GetTilesInRowResponse<U extends NextPageParamType = NextPageParamType> = PaginatedResponse<TileData, U>;
1404
+
1189
1405
  export declare interface GetVideoAnalyticsErrorItem {
1190
1406
  count: number;
1191
1407
  timestamp: number;
@@ -1254,19 +1470,26 @@ export declare enum GRID_TYPES {
1254
1470
  SERIES = "SERIES"
1255
1471
  }
1256
1472
 
1257
- declare type IncludedItem = {
1473
+ /**
1474
+ * @public
1475
+ */
1476
+ export declare interface HistoryContextData {
1477
+ history: string[];
1478
+ backOrRedirectToRoot: () => void;
1479
+ }
1480
+
1481
+ export declare type IncludedItem = {
1258
1482
  attributes: {
1259
1483
  next_charge_date: string;
1260
- /**
1261
- * A null value indicates the member has never pledged. Can be null.
1262
- */
1263
- patron_status: 'active_patron' | 'declined_patron' | 'former_patron' | null;
1484
+ patron_status: PatreonStatus;
1264
1485
  /**
1265
1486
  * The only successful status is Paid. null if never charged. Can be null.
1266
1487
  * One of Paid Declined Deleted Pending Refunded Fraud Other.
1267
1488
  */
1268
1489
  last_charge_status: 'Paid' | 'Declined' | 'Deleted' | 'Pending' | 'Refunded' | 'Fraud' | 'Other';
1269
1490
  last_charge_date: string;
1491
+ pledge_relationship_start: string;
1492
+ campaign_lifetime_support_cents: number;
1270
1493
  };
1271
1494
  id: string;
1272
1495
  type: string;
@@ -1327,7 +1550,16 @@ export declare interface IndexedVideo extends IndexedObject {
1327
1550
  sharedOrganizationPaths?: string[];
1328
1551
  tagPaths?: string[];
1329
1552
  created: Date | string;
1553
+ /**
1554
+ * Is evaluated on publishedStatus and transcodingStatus fields.
1555
+ * TODO this will be true for videos with UNLISTED status, which is unintuitive for 'isDraft', we need to rename this
1556
+ */
1330
1557
  isDraft: boolean;
1558
+ /**
1559
+ * TODO: Remove optional once we have all videos with transcodingStatus and publishedStatus set in algolia
1560
+ */
1561
+ transcodingStatus?: VideoTranscodingStatus;
1562
+ publishedStatus?: PublishedStatus;
1331
1563
  type: VideoType;
1332
1564
  contentType?: VideoContentType;
1333
1565
  name: string | Translation;
@@ -1343,8 +1575,17 @@ export declare interface IndexedVideo extends IndexedObject {
1343
1575
  * True if the video is available in Tivio Pro (StarMe)
1344
1576
  */
1345
1577
  isTivioPro: boolean;
1578
+ /**
1579
+ * See {@link VideoDocument.monetizationAccessRefs}.
1580
+ * We need explicitly set to false when there are no access monetizations set,
1581
+ * because algolia can't filter based on absence of attribute,
1582
+ * see https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/how-to/filter-by-attributes/#filter-by-null-or-missing-attributes.
1583
+ */
1584
+ monetizationAccessIds: string[] | false;
1346
1585
  }
1347
1586
 
1587
+ export declare type IntegrationType = 'discord' | 'patreon';
1588
+
1348
1589
  /**
1349
1590
  * @public
1350
1591
  */
@@ -1423,7 +1664,7 @@ export declare type ItemComponent = RowItemComponent | BannerItemComponent;
1423
1664
  /**
1424
1665
  * @public
1425
1666
  */
1426
- export declare type ItemsInRow = Tag | Video | TvChannel | Advertisement;
1667
+ export declare type ItemInRow = Tag | Video | TvChannel | Advertisement | Application | Article;
1427
1668
 
1428
1669
  /**
1429
1670
  * @public
@@ -1433,6 +1674,11 @@ export declare interface JojExternals {
1433
1674
  tvProfiContentId?: string;
1434
1675
  tvProfiSerialId?: string;
1435
1676
  contentId?: string;
1677
+ /**
1678
+ * Temporary contentId used only for live channel. The video is already encoded and stored in our storage
1679
+ * but is also stored on nangu platform to be used for live channel.
1680
+ */
1681
+ dvtvExtraContentId?: string;
1436
1682
  provysId?: string;
1437
1683
  tvProfiProvysId?: string;
1438
1684
  tvProfiHouseId?: string;
@@ -1475,10 +1721,18 @@ export declare type LanguageType = `${LangCode}`;
1475
1721
  /**
1476
1722
  * @public
1477
1723
  */
1478
- export declare type LinkedVideo = {
1724
+ export declare interface LinkedVideo {
1479
1725
  video: Video;
1480
- type: 'CUT' | 'TRAILER' | 'BONUS' | 'CHILD';
1481
- };
1726
+ type: 'CUT' | 'TRAILER' | 'BONUS' | 'CHILD' | 'TEASER' | 'TASTING' | 'VIRTUAL_PROGRAM' | 'PIP';
1727
+ }
1728
+
1729
+ /**
1730
+ * @public
1731
+ */
1732
+ export declare interface LinkedVideoRaw {
1733
+ videoRef: any;
1734
+ type: LinkedVideo['type'];
1735
+ }
1482
1736
 
1483
1737
  declare type Links = {
1484
1738
  self: string;
@@ -1583,7 +1837,9 @@ declare type LoggerArgs = any[];
1583
1837
 
1584
1838
  export declare enum LoginRedirect {
1585
1839
  PAYMENT = "payment",
1586
- VOUCHER = "voucher"
1840
+ VOUCHER = "voucher",
1841
+ VOUCHER_PURCHASE = "voucherPurchase",
1842
+ MAGENTA_MOMENTS = "magenta_moments"
1587
1843
  }
1588
1844
 
1589
1845
  /**
@@ -1611,10 +1867,10 @@ export declare interface Marker {
1611
1867
  /**
1612
1868
  * @public
1613
1869
  */
1614
- export declare type MarkersProps = {
1870
+ export declare interface MarkersProps {
1615
1871
  color?: string;
1616
1872
  className?: string;
1617
- };
1873
+ }
1618
1874
 
1619
1875
  declare type Membership = {
1620
1876
  id: string;
@@ -1627,7 +1883,23 @@ declare type Membership = {
1627
1883
  */
1628
1884
  export declare interface MigratedVideoExternals {
1629
1885
  externalVideoId: string;
1630
- additionalData: any;
1886
+ additionalData?: any;
1887
+ }
1888
+
1889
+ export declare interface MonetizableItem {
1890
+ /**
1891
+ * Returns true if content is purchased (via transaction or subscription) or free.
1892
+ */
1893
+ isPaid: boolean;
1894
+ /**
1895
+ * Gets the most relevant monetization for this content.
1896
+ */
1897
+ purchasableMonetization: PurchasableMonetization | null;
1898
+ /**
1899
+ * Returns all transactions and subscriptions applied to this video.
1900
+ * Transactions before subscriptions, sorted by price ascending.
1901
+ */
1902
+ getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
1631
1903
  }
1632
1904
 
1633
1905
  /**
@@ -1638,6 +1910,7 @@ export declare interface Monetization {
1638
1910
  type?: MonetizationType;
1639
1911
  name?: string;
1640
1912
  description?: string;
1913
+ organizationId?: string;
1641
1914
  }
1642
1915
 
1643
1916
  /**
@@ -1683,6 +1956,21 @@ export declare interface MonetizationCardProps {
1683
1956
  focused?: boolean;
1684
1957
  }
1685
1958
 
1959
+ export declare interface MonetizationsCountsSummaryItem {
1960
+ /**
1961
+ * Unix timestamp at which the data is aggregated
1962
+ */
1963
+ date: number;
1964
+ /**
1965
+ * ID of monetization
1966
+ */
1967
+ monetizationId: string;
1968
+ /**
1969
+ * Count of active purchases for that date
1970
+ */
1971
+ count: number;
1972
+ }
1973
+
1686
1974
  /**
1687
1975
  * @public
1688
1976
  */
@@ -1699,8 +1987,15 @@ export declare interface MonetizationsSelectOverlayData {
1699
1987
  */
1700
1988
  voucherPurchase?: boolean;
1701
1989
  registrationRedirect?: boolean;
1990
+ organizationId?: string;
1702
1991
  onPurchase?: () => void;
1703
1992
  onClose?: () => void;
1993
+ hideActivateVoucherButton?: boolean;
1994
+ showHeaderBackButton?: boolean;
1995
+ /**
1996
+ * Applies only if {@link subscriptions} are passed.
1997
+ */
1998
+ doNotFilterPassedSubscriptions?: boolean;
1704
1999
  }
1705
2000
 
1706
2001
  /**
@@ -1709,7 +2004,7 @@ export declare interface MonetizationsSelectOverlayData {
1709
2004
  export declare type MonetizationsSelectOverlayState = {
1710
2005
  isOpen: boolean;
1711
2006
  data: MonetizationsSelectOverlayData | null;
1712
- openMonetizationsSelectOverlay: (data: MonetizationsSelectOverlayData) => void;
2007
+ openMonetizationsSelectOverlay: (data?: MonetizationsSelectOverlayData) => void;
1713
2008
  closeMonetizationsSelectOverlay: () => void;
1714
2009
  };
1715
2010
 
@@ -1769,6 +2064,8 @@ export declare type NewVoucher = {
1769
2064
  expirationDate: Date | number;
1770
2065
  };
1771
2066
 
2067
+ declare type NextPageParamType = 'screenId' | 'rowId' | 'filter';
2068
+
1772
2069
  /**
1773
2070
  * @public
1774
2071
  */
@@ -1833,8 +2130,13 @@ declare type OrderByDirection = 'desc' | 'asc';
1833
2130
  * @public
1834
2131
  */
1835
2132
  export declare interface Organization {
2133
+ id: string;
1836
2134
  userProfileConfiguration: any;
1837
2135
  screenConfigs: ScreenConfig[];
2136
+ logo: string | null;
2137
+ logoLandscape: string | null;
2138
+ organizationBanner: string | null;
2139
+ profilePhoto: string | null;
1838
2140
  }
1839
2141
 
1840
2142
  /**
@@ -1847,6 +2149,23 @@ export declare type OtherSource = SourceBase & StartAndContinuePosition & {
1847
2149
  type: 'other';
1848
2150
  };
1849
2151
 
2152
+ export declare interface PaginatedResponse<T = unknown, U extends NextPageParamType = NextPageParamType> {
2153
+ items: T[];
2154
+ nextPageParams: {
2155
+ offset: number;
2156
+ limit: number;
2157
+ } & (U extends 'screenId' ? {
2158
+ organizationId: string;
2159
+ screenId: string;
2160
+ initialTilesCount: number;
2161
+ } : U extends 'rowId' ? {
2162
+ organizationId: string;
2163
+ rowId: string;
2164
+ } : U extends 'filter' ? {
2165
+ filter: Omit<RowFilterField, 'limit'>;
2166
+ } : {}) | null;
2167
+ }
2168
+
1850
2169
  /**
1851
2170
  * @public
1852
2171
  */
@@ -1866,6 +2185,18 @@ export declare type PaginationOptions = Partial<{
1866
2185
  noAutoFetch: boolean;
1867
2186
  }>;
1868
2187
 
2188
+ /**
2189
+ * @public
2190
+ */
2191
+ export declare interface PartialRegistrationOverlayContextState {
2192
+ isOpen: boolean;
2193
+ openOverlay: (onEmailSent?: () => void, origin?: RegistrationRedirect, voucher?: string) => void;
2194
+ closeOverlay: () => void;
2195
+ onEmailSent?: () => void;
2196
+ origin?: RegistrationRedirect;
2197
+ voucher?: string;
2198
+ }
2199
+
1869
2200
  export declare type PatreonCreatorData = {
1870
2201
  campaign: string;
1871
2202
  tiers: Tier[];
@@ -1881,6 +2212,11 @@ declare type PatreonError = {
1881
2212
  title?: string;
1882
2213
  };
1883
2214
 
2215
+ /**
2216
+ * A null value indicates the member has never pledged. Can be null.
2217
+ */
2218
+ export declare type PatreonStatus = 'active_patron' | 'declined_patron' | 'former_patron' | null;
2219
+
1884
2220
  export declare type PatreonUserAuth = {
1885
2221
  access_token: string;
1886
2222
  refresh_token: string;
@@ -1890,9 +2226,16 @@ export declare type PatreonUserAuth = {
1890
2226
  version?: string;
1891
2227
  };
1892
2228
 
2229
+ export declare interface PatreonUserAuthWithCreated extends PatreonUserAuth {
2230
+ /**
2231
+ * unix timestamp in ms
2232
+ */
2233
+ created: number;
2234
+ }
2235
+
1893
2236
  export declare type PatreonUserResponse = {
1894
2237
  data: Data;
1895
- included: IncludedItem[];
2238
+ included?: IncludedItem[];
1896
2239
  links: Links;
1897
2240
  errors?: PatreonError[];
1898
2241
  };
@@ -1950,6 +2293,7 @@ export declare interface PlayerCapability {
1950
2293
  * @public
1951
2294
  */
1952
2295
  export declare type PlayerConfig = {
2296
+ enabled?: boolean;
1953
2297
  /**
1954
2298
  * Some devices do not seek exactly
1955
2299
  *
@@ -2126,6 +2470,7 @@ export declare interface PlayerEngineInterface {
2126
2470
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#playsinline
2127
2471
  */
2128
2472
  setPlaysInline(value: boolean): void;
2473
+ setControlsList(value: string[]): void;
2129
2474
  }
2130
2475
 
2131
2476
  /**
@@ -2205,6 +2550,7 @@ export declare interface PlayerInterface {
2205
2550
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#playsinline
2206
2551
  */
2207
2552
  setPlaysInline?: (value: boolean) => void;
2553
+ setControlsList?: (value: string[]) => void;
2208
2554
  }
2209
2555
 
2210
2556
  /**
@@ -2384,6 +2730,8 @@ export declare type PlayerWrapperEventTypeType = `${PlayerWrapperEventType}`;
2384
2730
  export declare interface Promotion {
2385
2731
  duration?: Duration;
2386
2732
  price?: number;
2733
+ requiresPaymentAuthorization?: boolean;
2734
+ hideOtherSubscriptions?: boolean;
2387
2735
  }
2388
2736
 
2389
2737
  /**
@@ -2391,6 +2739,25 @@ export declare interface Promotion {
2391
2739
  */
2392
2740
  export declare type PromotionType = 'CLASSIC' | 'PATREON';
2393
2741
 
2742
+ /**
2743
+ * @public
2744
+ */
2745
+ export declare enum PublishedStatus {
2746
+ /**
2747
+ * Content is not published, is not shown in any application and cannot be played,
2748
+ * even if user enters url directly into browser.
2749
+ */
2750
+ DRAFT = "DRAFT",
2751
+ /**
2752
+ * Content is published and can be accessed and played freely in any application.
2753
+ */
2754
+ PUBLISHED = "PUBLISHED",
2755
+ /**
2756
+ * Content is not visible in the application (e.g. rows, search), but if user has direct url to it, they can play it.
2757
+ */
2758
+ UNLISTED = "UNLISTED"
2759
+ }
2760
+
2394
2761
  /**
2395
2762
  * @public
2396
2763
  */
@@ -2413,6 +2780,7 @@ export declare interface PurchasableMonetization extends Monetization {
2413
2780
  price?: string | number;
2414
2781
  promotion: Promotion | null;
2415
2782
  frequency?: MONETIZATION_FREQUENCY;
2783
+ durationDays?: number;
2416
2784
  /**
2417
2785
  * Returns TRUE if subscription is purchased (and not expired) by user.
2418
2786
  * Returns TRUE if transaction is purchased (and not expired) for transactionItemId.
@@ -2438,6 +2806,10 @@ export declare interface PurchasableMonetization extends Monetization {
2438
2806
  * Returns array of tag ids of monetization placements
2439
2807
  */
2440
2808
  tagIds: string[];
2809
+ /**
2810
+ * When set to true, subscription is hidden in UI (e.g. in MonetizationSelectOverlay).
2811
+ */
2812
+ subscriptionIsHidden?: boolean;
2441
2813
  }
2442
2814
 
2443
2815
  /**
@@ -2453,6 +2825,7 @@ export declare type Purchase = {
2453
2825
  */
2454
2826
  createdBy?: string;
2455
2827
  expirationDate: Date | null;
2828
+ gateway: PurchaseDocumentGateway | null;
2456
2829
  id: string;
2457
2830
  isExpired: boolean;
2458
2831
  /**
@@ -2472,6 +2845,8 @@ export declare type Purchase = {
2472
2845
  videoId: string | null;
2473
2846
  videoRef: any | null;
2474
2847
  voucherId: string | null;
2848
+ isVoucherActivation?: boolean;
2849
+ rebalancingVideoRef?: any;
2475
2850
  };
2476
2851
 
2477
2852
  /**
@@ -2483,7 +2858,8 @@ export declare enum PurchaseDocumentGateway {
2483
2858
  'voucher' = "voucher",
2484
2859
  'comgate' = "comgate",
2485
2860
  'tivio' = "tivio",
2486
- 'patreon' = "patreon"
2861
+ 'patreon' = "patreon",
2862
+ 'paypal' = "paypal"
2487
2863
  }
2488
2864
 
2489
2865
  /**
@@ -2510,6 +2886,10 @@ export declare type PurchaseEndpointPayload = {
2510
2886
  * really expire at this timestamp - additional payment of this subscription can occur so expiration timestamp may be increased.
2511
2887
  */
2512
2888
  expiration?: number;
2889
+ /**
2890
+ * If purchase was made outside of standard Tivio payment method (e.g PayPal), this is its ID.
2891
+ */
2892
+ externalId?: string;
2513
2893
  /**
2514
2894
  * Gateway name or "voucher".
2515
2895
  */
@@ -2531,9 +2911,10 @@ export declare type PurchaseEndpointPayload = {
2531
2911
  */
2532
2912
  originalPurchaseId?: string;
2533
2913
  /**
2534
- * Purchase status before change.
2914
+ * Purchase status before change. Not present for new documents - e.g. for reoccurring payment (old document is
2915
+ * set to RENEWED, new document is created with PAID status).
2535
2916
  */
2536
- previousStatus: PurchaseStatus;
2917
+ previousStatus?: PurchaseStatus;
2537
2918
  /**
2538
2919
  * Timestamp of the last change of the purchase - in this case it is timestamp when it was paid.
2539
2920
  */
@@ -2626,8 +3007,8 @@ export declare type PurchaseEndpointPayload = {
2626
3007
  * @public
2627
3008
  */
2628
3009
  export declare type PurchaseMonetization = {
3010
+ durationDays?: MONETIZATION_DURATION | number;
2629
3011
  currency?: Currency;
2630
- period?: number;
2631
3012
  price?: number;
2632
3013
  /**
2633
3014
  * Here are only transaction and subscription because purchasing of advertisement monetization doesn't make sense.
@@ -2693,6 +3074,7 @@ export declare interface QerkoCancellationInfo {
2693
3074
  export declare interface QerkoData {
2694
3075
  monetization: PurchasableMonetization;
2695
3076
  item?: Video | TvChannel;
3077
+ isMagentaMoments?: boolean;
2696
3078
  /**
2697
3079
  * If set to true, user is buying voucher.
2698
3080
  * Otherwise, user is making a purchase for himself.
@@ -2730,6 +3112,7 @@ export declare interface QerkoPaymentInfo {
2730
3112
  monetizationType: MonetizationType;
2731
3113
  recovery?: boolean;
2732
3114
  monetizationFrequency: MONETIZATION_FREQUENCY;
3115
+ customToken?: string;
2733
3116
  }
2734
3117
 
2735
3118
  /**
@@ -2745,6 +3128,38 @@ export declare interface QerkoPaymentProps {
2745
3128
  masterCardLogoUrl?: string;
2746
3129
  }
2747
3130
 
3131
+ /**
3132
+ * Request body which is accepted by qerkoPaymentWebhookByApiKey endpoint.
3133
+ *
3134
+ * @public
3135
+ */
3136
+ export declare interface QerkoPaymentWebhookByApiKeyRequest {
3137
+ /**
3138
+ * Payment state.
3139
+ */
3140
+ state: 'PAID' | 'CANCELLED';
3141
+ /**
3142
+ * Tivio purchase ID.
3143
+ */
3144
+ idOrder: string;
3145
+ payment: {
3146
+ additionalData: {
3147
+ /**
3148
+ * Tivio user ID.
3149
+ */
3150
+ userId: string;
3151
+ };
3152
+ };
3153
+ /**
3154
+ * Gateway where payment was made.
3155
+ */
3156
+ gateway?: PurchaseDocumentGateway;
3157
+ /**
3158
+ * If purchase was made outside of standard Tivio payment method (e.g PayPal), this is its ID.
3159
+ */
3160
+ externalPurchaseId?: string;
3161
+ }
3162
+
2748
3163
  /**
2749
3164
  * @public
2750
3165
  */
@@ -2756,6 +3171,39 @@ export declare interface QerkoTransaction {
2756
3171
  voucherId?: string;
2757
3172
  }
2758
3173
 
3174
+ /**
3175
+ * @public
3176
+ */
3177
+ export declare interface ReactableContent {
3178
+ path: string;
3179
+ reactions: {
3180
+ [key in ReactionEnum]?: number;
3181
+ } | null;
3182
+ updateReactionCount: (reaction: ReactionEnum, newCount: number) => void;
3183
+ }
3184
+
3185
+ /**
3186
+ * @public
3187
+ */
3188
+ export declare enum ReactionEnum {
3189
+ LIKE = "LIKE",
3190
+ DISLIKE = "DISLIKE",
3191
+ LOVE = "LOVE",
3192
+ HAHA = "HAHA",
3193
+ WOW = "WOW",
3194
+ SAD = "SAD",
3195
+ ANGRY = "ANGRY",
3196
+ CARE = "CARE",
3197
+ SUPPORT = "SUPPORT",
3198
+ PRAY = "PRAY",
3199
+ THINK = "THINK",
3200
+ CELEBRATE = "CELEBRATE",
3201
+ THANKFUL = "THANKFUL",
3202
+ LAUGH = "LAUGH",
3203
+ INSPIRED = "INSPIRED",
3204
+ AWW = "AWW"
3205
+ }
3206
+
2759
3207
  /**
2760
3208
  * @public
2761
3209
  */
@@ -2771,7 +3219,10 @@ export declare type ReactNativeDeviceInfo = {
2771
3219
  };
2772
3220
 
2773
3221
  export declare enum RegistrationRedirect {
2774
- PAYMENT = "payment"
3222
+ PAYMENT = "payment",
3223
+ VOUCHER_PURCHASE = "voucherPurchase",
3224
+ VOUCHER = "voucher",
3225
+ MAGENTA_MOMENTS = "magenta_moments"
2775
3226
  }
2776
3227
 
2777
3228
  declare type Relationship = {
@@ -2795,11 +3246,11 @@ export declare type RemoteBundleState = {
2795
3246
  /**
2796
3247
  * @public
2797
3248
  */
2798
- export declare type RemoteProviderProps = {
3249
+ export declare interface RemoteProviderProps {
2799
3250
  disableUnmounting?: boolean;
2800
3251
  language?: LangCode;
2801
3252
  children: React_2.ReactNode;
2802
- };
3253
+ }
2803
3254
 
2804
3255
  /**
2805
3256
  * Conditions that are dynamically applied to screens before they are rendered.
@@ -2808,44 +3259,79 @@ export declare type RemoteProviderProps = {
2808
3259
  * 'else' indicates what should happen if the conditions are not met.
2809
3260
  * 'elseValue' is a payload.
2810
3261
  */
2811
- export declare type RenderCondition = {
3262
+ export declare interface RenderCondition {
2812
3263
  type: ScreenConditionType;
3264
+ value?: RenderConditionValue[];
2813
3265
  else: ScreenConditionElse;
2814
3266
  elseValue: RenderConditionElseValue[];
2815
- };
3267
+ }
2816
3268
 
2817
- export declare type RenderConditionElseValue = {
3269
+ export declare interface RenderConditionElseValue {
2818
3270
  key: string;
2819
3271
  value: string;
3272
+ }
3273
+
3274
+ export declare interface RenderConditionValue {
3275
+ subscriptionRefs?: any[];
3276
+ }
3277
+
3278
+ /**
3279
+ * Make all attributes in given type required, non-nullable and defined.
3280
+ * e.g. will make `{ attribute?: string | null }` to be `{ attribute: string }`
3281
+ */
3282
+ export declare type RequiredNonNullable<T> = {
3283
+ [P in keyof T]-?: NonNullable<T[P]>;
2820
3284
  };
2821
3285
 
2822
3286
  /**
2823
3287
  * @public
2824
3288
  */
2825
3289
  export declare interface RouterOverrides {
2826
- getVideoDetailPath: (videoIdOrUrlName: string) => string;
2827
- getSeriesDetailPath: (tagId: string) => string;
3290
+ getVideoDetailPath: (videoIdOrUrlName: string, item?: ItemInRow) => string;
3291
+ getSeriesDetailPath: (tagId: string, item?: ItemInRow) => string;
2828
3292
  getTagPath: (tagId: string) => string;
2829
3293
  getLoginPath: () => string;
2830
3294
  getRegistrationPath: () => string;
2831
3295
  getLivePlayerPath: (tvChannelId: string) => string;
2832
3296
  getVodPlayerPath: (videoIdOrUrlName: string) => string;
2833
3297
  getHomePath: (screens: ScreenConfig[]) => string;
2834
- goToVideoDetailPage: (videoIdOrUrlName: string) => void;
3298
+ getArticlePath: (articleId: string) => string;
3299
+ getApplicationPath: (applicationUrlHandle: string) => string;
3300
+ getGridPath: (options: {
3301
+ gridType: GRID_TYPES.SERIES;
3302
+ seriesTagId: string;
3303
+ season?: number;
3304
+ } | {
3305
+ gridType: GRID_TYPES.ROW;
3306
+ rowId: string;
3307
+ } | {
3308
+ gridType: GRID_TYPES.VIDEO;
3309
+ videoId: string;
3310
+ }) => string;
3311
+ goToVideoDetailPage: (videoIdOrUrlName: string, item?: ItemInRow) => void;
2835
3312
  goToSeriesDetailPage: (tagId: string) => void;
2836
3313
  goToTagPage: (tagId: string) => void;
2837
3314
  goToLoginPage: (options?: {
2838
3315
  manual?: boolean;
2839
3316
  origin?: LoginRedirect;
3317
+ email?: string;
3318
+ urlHandle?: string;
3319
+ replace?: boolean;
2840
3320
  }) => void;
2841
3321
  goToRegistrationPage: (options?: {
2842
3322
  origin?: RegistrationRedirect;
3323
+ email?: string;
2843
3324
  }) => void;
2844
3325
  goBack: () => void;
2845
3326
  goLivePlayer: (tvChannelId: string) => void;
2846
3327
  goVodPlayer: (videoIdOrUrlName: string) => void;
2847
3328
  goToHome: (user?: any, activeUserProfileId?: string) => void;
2848
3329
  goToRoute: (route: string) => void;
3330
+ goToArticle: (id: string, applicationUrlHandle?: string) => void;
3331
+ goToRecommendedFromOrganization: (screenId: string, organizationId: string) => void;
3332
+ goToRecommendedFromOrganizationRow: (screenId: string, rowId: string) => void;
3333
+ goToMagentaMomentsPage: (voucher?: string) => void;
3334
+ goToVoucherRedeemPage: () => void;
2849
3335
  }
2850
3336
 
2851
3337
  /**
@@ -2862,43 +3348,44 @@ export declare interface RouterOverridesContextState {
2862
3348
  /**
2863
3349
  * @public
2864
3350
  */
2865
- export declare type Row = RowStandard | RowBanner;
3351
+ export declare interface Row {
3352
+ id: string;
3353
+ rowId: string;
3354
+ name: string;
3355
+ description?: string;
3356
+ assets: AssetsField;
3357
+ type: ScreenRowType;
3358
+ isLiveRow: boolean;
3359
+ tiles: PaginationInterface<ItemInRow>;
3360
+ numberOfLines?: number;
3361
+ monetizations?: {
3362
+ monetizationRef: any;
3363
+ }[];
3364
+ rowComponent: RowComponent.ROW | RowComponent.BANNER;
3365
+ itemComponent: RowItemComponent | BannerItemComponent;
3366
+ organizationId?: string;
3367
+ }
2866
3368
 
2867
3369
  /**
2868
3370
  * @public
2869
3371
  */
2870
3372
  export declare enum ROW_ITEM_TYPES {
3373
+ APPLICATION = "APPLICATION",
2871
3374
  VIDEO = "VIDEO",
2872
3375
  TAG = "TAG",
2873
3376
  TV_CHANNEL = "TV_CHANNEL",
2874
- ADVERTISEMENT = "ADVERTISEMENT"
3377
+ ADVERTISEMENT = "ADVERTISEMENT",
3378
+ ARTICLE = "ARTICLE"
2875
3379
  }
2876
3380
 
2877
3381
  /**
2878
- * @private
3382
+ * @public
2879
3383
  */
2880
- export declare interface RowBanner extends RowBase {
3384
+ export declare interface RowBanner extends Row {
2881
3385
  rowComponent: RowComponent.BANNER;
2882
3386
  itemComponent: BannerItemComponent;
2883
3387
  }
2884
3388
 
2885
- /**
2886
- * @private
2887
- */
2888
- declare interface RowBase {
2889
- id: string;
2890
- rowId: string;
2891
- name: string;
2892
- description?: string;
2893
- assets: Assets;
2894
- type: ScreenRowType;
2895
- isLiveRow: boolean;
2896
- numberOfLines?: number;
2897
- monetizations?: {
2898
- monetizationRef: any;
2899
- }[];
2900
- }
2901
-
2902
3389
  /**
2903
3390
  * @public
2904
3391
  */
@@ -2907,13 +3394,14 @@ export declare enum RowComponent {
2907
3394
  BANNER = "BANNER"
2908
3395
  }
2909
3396
 
2910
- declare enum RowFilterCollection {
3397
+ export declare enum RowFilterCollection {
2911
3398
  VIDEOS = "videos",
2912
3399
  /**
2913
3400
  * This is not real collection path. Path always should be ${organizationId}/tags
2914
3401
  */
2915
3402
  TAGS = "tags",
2916
- TV_CHANNELS = "tvChannels"
3403
+ TV_CHANNELS = "tvChannels",
3404
+ CONTENTS = "contents"
2917
3405
  }
2918
3406
 
2919
3407
  /**
@@ -2923,19 +3411,66 @@ declare enum RowFilterCollection {
2923
3411
  export declare interface RowFilterField {
2924
3412
  collection: RowFilterCollection;
2925
3413
  limit?: number;
2926
- orderBy: {
3414
+ orderBy?: {
2927
3415
  fieldPath: RowOrderByFieldPath;
2928
- directionStr: OrderByDirection;
3416
+ directionStr?: OrderByDirection;
2929
3417
  };
2930
- where: RowFilterWhereField[];
3418
+ where?: RowFilterWhereField[];
2931
3419
  }
2932
3420
 
2933
- declare interface RowFilterWhereField {
3421
+ export declare interface RowFilterWhereField {
2934
3422
  fieldPath: RowWhereFilterFieldPath;
2935
3423
  opStr: WhereFilterOp;
2936
3424
  value: any;
2937
3425
  }
2938
3426
 
3427
+ export declare type RowInScreen = {
3428
+ /**
3429
+ * Firebase document path. If not provided, the row is not defined in db and is dynamically generated (e.g. recommendation row).
3430
+ */
3431
+ path?: string;
3432
+ /**
3433
+ * Tivio row ID.
3434
+ */
3435
+ rowId: string;
3436
+ /**
3437
+ * If all items are from the same organization this will be set.
3438
+ */
3439
+ organizationId?: string;
3440
+ /**
3441
+ * Row name.
3442
+ */
3443
+ name: Translation;
3444
+ /**
3445
+ * Row filter based on which to pick tiles.
3446
+ */
3447
+ filter?: RowFilterField;
3448
+ /**
3449
+ * Row order in the screen.
3450
+ */
3451
+ order?: number;
3452
+ /**
3453
+ * Number of lines of the title.
3454
+ */
3455
+ numberOfLines?: number;
3456
+ /**
3457
+ * Standard row or a Banner.
3458
+ */
3459
+ rowComponent: RowComponent;
3460
+ /**
3461
+ * Component to use to render the tiles in the row.
3462
+ */
3463
+ itemComponent: RowItemComponent | BannerItemComponent;
3464
+ /**
3465
+ * Type of the row (continue to watch, custom, filter, ...).
3466
+ */
3467
+ type: ScreenRowType;
3468
+ /**
3469
+ * Items to display in the row.
3470
+ */
3471
+ tiles: GetTilesInRowResponse;
3472
+ };
3473
+
2939
3474
  /**
2940
3475
  * @public
2941
3476
  */
@@ -2944,7 +3479,21 @@ export declare interface RowItem extends RowItemAssets {
2944
3479
  itemType: ROW_ITEM_TYPES;
2945
3480
  name?: string;
2946
3481
  description?: string;
2947
- assets: Assets | null;
3482
+ assets: AssetsField | null;
3483
+ application: RowItemApplicationData | null;
3484
+ feedVisible?: boolean;
3485
+ }
3486
+
3487
+ /**
3488
+ * @public
3489
+ */
3490
+ export declare interface RowItemApplicationData {
3491
+ name: string;
3492
+ logo?: string | null;
3493
+ logoLandscape?: string | null;
3494
+ profilePhoto?: string | null;
3495
+ urlHandle: string;
3496
+ organizationId?: string | null;
2948
3497
  }
2949
3498
 
2950
3499
  /**
@@ -2954,6 +3503,7 @@ export declare interface RowItemAssets {
2954
3503
  landscape?: string | null;
2955
3504
  portrait?: string | null;
2956
3505
  circled?: string | null;
3506
+ square?: string | null;
2957
3507
  banner?: string | null;
2958
3508
  bannerMobile?: string | null;
2959
3509
  }
@@ -2964,7 +3514,12 @@ export declare interface RowItemAssets {
2964
3514
  export declare enum RowItemComponent {
2965
3515
  ROW_ITEM_PORTRAIT = "ROW_ITEM_PORTRAIT",
2966
3516
  ROW_ITEM_LANDSCAPE = "ROW_ITEM_LANDSCAPE",
2967
- ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED"
3517
+ ROW_ITEM_SQUARE = "ROW_ITEM_SQUARE",
3518
+ ROW_ITEM_CREATORS_SQUARE = "ROW_ITEM_CREATORS_SQUARE",
3519
+ ROW_ITEM_CREATORS_LANDSCAPE = "ROW_ITEM_CREATORS_LANDSCAPE",
3520
+ ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED",
3521
+ ROW_ITEM_HIGHLIGHTED = "ROW_ITEM_HIGHLIGHTED",
3522
+ ROW_ITEM_PLAIN = "ROW_ITEM_PLAIN"
2968
3523
  }
2969
3524
 
2970
3525
  /**
@@ -2991,9 +3546,9 @@ export declare enum RowOrderByFieldPath {
2991
3546
  }
2992
3547
 
2993
3548
  /**
2994
- * @private
3549
+ * @public
2995
3550
  */
2996
- export declare interface RowStandard extends RowBase {
3551
+ export declare interface RowStandard extends Row {
2997
3552
  rowComponent: RowComponent.ROW;
2998
3553
  itemComponent: RowItemComponent;
2999
3554
  }
@@ -3004,7 +3559,10 @@ export declare enum RowWhereFilterFieldPath {
3004
3559
  TAG_TYPE_REF = "tagTypeRef",
3005
3560
  TYPE = "type",
3006
3561
  CONTENT_TYPE = "contentType",
3007
- CHANNEL_KEY = "channelKey"
3562
+ CHANNEL_KEY = "channelKey",
3563
+ PUBLISHED_STATUS = "publishedStatus",
3564
+ ORGANIZATION_REF = "organizationRef",
3565
+ TRANSCODING_STATUS = "transcodingStatus"
3008
3566
  }
3009
3567
 
3010
3568
  /**
@@ -3028,20 +3586,35 @@ declare interface Screen_2 {
3028
3586
  id: string;
3029
3587
  name: string | null;
3030
3588
  description?: string | null;
3031
- assets: Assets;
3032
- rows: Row[];
3589
+ assets: AssetsField;
3590
+ rows: PaginatedResponse<Row>;
3033
3591
  type?: ScreenType;
3034
3592
  filter?: RowFilterField | null;
3035
- embedUrl?: string | null;
3593
+ embedUrl?: string;
3594
+ screenId: string;
3595
+ renderConditions: RenderCondition[];
3596
+ getRenderCondition: (context: {
3597
+ purchasedSubscriptions: Purchase[];
3598
+ }) => RenderCondition | undefined;
3599
+ applyRenderCondition: (payload: ApplyScreenConditionPayload) => {
3600
+ isSignInRequired?: boolean;
3601
+ isPurchaseRequired?: boolean;
3602
+ embedUrl?: string;
3603
+ };
3604
+ fetchMoreRows: () => Promise<void>;
3605
+ hasNextPage: boolean;
3606
+ refetchIfNeeded: () => Promise<void>;
3036
3607
  }
3037
3608
  export { Screen_2 as Screen }
3038
3609
 
3039
3610
  export declare enum ScreenConditionElse {
3040
- SET_QUERY_PARAMS = "setQueryParams"
3611
+ SET_QUERY_PARAMS = "setQueryParams",
3612
+ SHOW_PURCHASE_MODAL = "showPurchaseModal"
3041
3613
  }
3042
3614
 
3043
3615
  export declare enum ScreenConditionType {
3044
- SUBSCRIBED = "subscribed"
3616
+ SUBSCRIBED = "subscribed",
3617
+ SIGNED_IN = "signedIn"
3045
3618
  }
3046
3619
 
3047
3620
  /**
@@ -3051,24 +3624,18 @@ export declare type ScreenConfig = {
3051
3624
  id: string;
3052
3625
  name: string;
3053
3626
  route?: string;
3627
+ isHiddenFromMenu?: boolean;
3054
3628
  showForUserProfileType?: {
3055
3629
  kids: boolean;
3056
3630
  adults: boolean;
3057
3631
  };
3632
+ monetizationAccessIds?: string[];
3058
3633
  };
3059
3634
 
3060
3635
  /**
3061
3636
  * @public
3062
3637
  */
3063
- export declare type ScreenOptions = Partial<{
3064
- language: LangCode;
3065
- initRows: boolean;
3066
- }> & DocumentOptions;
3067
-
3068
- /**
3069
- * @public
3070
- */
3071
- export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched';
3638
+ export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched' | 'applications';
3072
3639
 
3073
3640
  /**
3074
3641
  * Listen to screen data
@@ -3082,7 +3649,9 @@ export declare type ScreenSubscription = (screenId: string, cb: (error: Error |
3082
3649
  export declare enum ScreenType {
3083
3650
  DEFAULT = "default",
3084
3651
  GRID = "grid",
3085
- EMBED = "embed"
3652
+ EMBED = "embed",
3653
+ RECOMMENDATION = "recommendation",
3654
+ FEED = "feed"
3086
3655
  }
3087
3656
 
3088
3657
  /**
@@ -3123,6 +3692,12 @@ export declare enum SemanticDate {
3123
3692
  TOMORROW = "Tomorrow"
3124
3693
  }
3125
3694
 
3695
+ export declare interface SendFinalizeRegistrationEmailPayload {
3696
+ email: string;
3697
+ userId: string;
3698
+ authUserId: string;
3699
+ }
3700
+
3126
3701
  /**
3127
3702
  * Used for entities, that can be global (e.g. asset presets, tag types).
3128
3703
  * Non-global is stored under organizations (in sub-collection), and shown for organization's users and super-admin.
@@ -3148,6 +3723,15 @@ export declare const setUser: (userId: string | null, payload?: UserPayload) =>
3148
3723
  */
3149
3724
  export declare const showGdprConsentPreferences: () => Promise<void>;
3150
3725
 
3726
+ export declare enum SocialNetworks {
3727
+ FACEBOOK = 0,
3728
+ INSTAGRAM = 1,
3729
+ TWITTER = 2,
3730
+ LINKED_IN = 3,
3731
+ EMAIL = 4,
3732
+ YOUTUBE = 5
3733
+ }
3734
+
3151
3735
  /**
3152
3736
  * @public
3153
3737
  */
@@ -3233,13 +3817,18 @@ export declare type StartAndContinuePosition = {
3233
3817
  declare interface StorageManager_2 {
3234
3818
  getItem(key: string): string | null | Promise<string | null>;
3235
3819
  setItem(key: string, value: string): void | Promise<void>;
3820
+ removeItem(key: string): void | Promise<void>;
3236
3821
  }
3237
3822
  export { StorageManager_2 as StorageManager }
3238
3823
 
3824
+ export declare interface StoreBadgeConfig {
3825
+ appId: string;
3826
+ }
3827
+
3239
3828
  /**
3240
3829
  * @public
3241
3830
  */
3242
- export declare type SubscribeToItemsInRow = (rowId: string, cb: (error: Error | null, data: PaginationInterface<ItemsInRow> | null) => void, options?: SubscribeToItemsInRowOptions) => Disposer_2;
3831
+ export declare type SubscribeToItemsInRow = (rowId: string, cb: (error: Error | null, data: PaginationInterface<ItemInRow> | null) => void, options?: SubscribeToItemsInRowOptions) => Disposer_2;
3243
3832
 
3244
3833
  /**
3245
3834
  * @public
@@ -3255,11 +3844,6 @@ export declare type SubscribeToItemsInRowOptions = Partial<{
3255
3844
  */
3256
3845
  export declare type SubscribeToRowsInScreen = (screenId: string, cb: (error: Error | null, data: PaginationInterface<Row> | null) => void, options?: PaginationOptions) => Disposer_2;
3257
3846
 
3258
- /**
3259
- * @public
3260
- */
3261
- export declare type SubscribeToScreen = (screenId: string, cb: (error: Error | null, data: Screen_2 | null) => void, options?: ScreenOptions) => Disposer_2;
3262
-
3263
3847
  /**
3264
3848
  * @public
3265
3849
  */
@@ -3287,7 +3871,7 @@ export declare interface SuccessConfirmationOverlayPayload extends ConfirmationO
3287
3871
  confirmButtonText?: string;
3288
3872
  }
3289
3873
 
3290
- export declare type SynchronizeUserTypeFunction = (payload: CreateUserPayload, tenantId: string, tenantUserId: string) => Promise<string>;
3874
+ export declare type SynchronizeUserTypeFunction = (payload: CreateUserPayload, tenantId: string, tenantUserId: string, organizationId?: string) => Promise<string>;
3291
3875
 
3292
3876
  /**
3293
3877
  * @public
@@ -3297,7 +3881,7 @@ export declare interface Tag extends RowItem {
3297
3881
  itemType: ROW_ITEM_TYPES.TAG;
3298
3882
  tagId: string;
3299
3883
  type?: string | null;
3300
- metadata?: any[];
3884
+ metadata?: TagMetadataField[];
3301
3885
  color?: string;
3302
3886
  detailBanner?: string;
3303
3887
  availableSeasons?: AvailableSeason[];
@@ -3305,6 +3889,17 @@ export declare interface Tag extends RowItem {
3305
3889
  addToFavorites: () => void;
3306
3890
  removeFromFavorites: () => void;
3307
3891
  cover: string;
3892
+ getApplicationName: () => string | undefined;
3893
+ }
3894
+
3895
+ export declare interface TagAvailableSeasonsFieldType extends TagMetadataFieldDefinition {
3896
+ type: TagMetadataFieldType.AVAILABLE_SEASONS;
3897
+ value: AvailableSeasonField[];
3898
+ }
3899
+
3900
+ export declare interface TagBooleanFieldType extends TagMetadataFieldDefinition {
3901
+ type: TagMetadataFieldType.BOOLEAN;
3902
+ value: boolean;
3308
3903
  }
3309
3904
 
3310
3905
  /**
@@ -3312,6 +3907,61 @@ export declare interface Tag extends RowItem {
3312
3907
  */
3313
3908
  export declare type TaggedVideosOrderByField = 'seasonNumber' | 'episodeNumber' | 'contentType' | DefaultOrderByField;
3314
3909
 
3910
+ export declare type TagMetadataField = TagStringFieldType | TagNumberFieldType | TagBooleanFieldType | TagTranslationFieldType | TagAvailableSeasonsFieldType | TagOrganizationRefFieldType;
3911
+
3912
+ export declare interface TagMetadataFieldDefinition {
3913
+ key: string;
3914
+ type: TagMetadataFieldType;
3915
+ }
3916
+
3917
+ export declare enum TagMetadataFieldType {
3918
+ STRING = "STRING",
3919
+ TRANSLATION = "TRANSLATION",
3920
+ NUMBER = "NUMBER",
3921
+ BOOLEAN = "BOOLEAN",
3922
+ AVAILABLE_SEASONS = "AVAILABLE_SEASONS",
3923
+ ORGANIZATION_REF = "ORGANIZATION_REF"
3924
+ }
3925
+
3926
+ export declare interface TagNumberFieldType extends TagMetadataFieldDefinition {
3927
+ type: TagMetadataFieldType.NUMBER;
3928
+ value: number;
3929
+ }
3930
+
3931
+ export declare interface TagOrganizationRefFieldType extends TagMetadataFieldDefinition {
3932
+ type: TagMetadataFieldType.ORGANIZATION_REF;
3933
+ value: DocumentReference<any>;
3934
+ }
3935
+
3936
+ export declare enum TagSimplicityType {
3937
+ /**
3938
+ * Simple tags
3939
+ */
3940
+ SIMPLE = "SIMPLE",
3941
+ /**
3942
+ * Composed of simple tags. Used for filtering by tagA AND tagB by using one composed tag tagA__tagB
3943
+ */
3944
+ COMPOSED = "COMPOSED"
3945
+ }
3946
+
3947
+ export declare interface TagStringFieldType extends TagMetadataFieldDefinition {
3948
+ type: TagMetadataFieldType.STRING;
3949
+ value: string;
3950
+ }
3951
+
3952
+ export declare interface TagTileSpecificData {
3953
+ assets?: AssetsField;
3954
+ tagId: string;
3955
+ metadata: TagMetadataField[];
3956
+ simplicity: TagSimplicityType;
3957
+ tagTypePath?: string;
3958
+ }
3959
+
3960
+ export declare interface TagTranslationFieldType extends TagMetadataFieldDefinition {
3961
+ type: TagMetadataFieldType.TRANSLATION;
3962
+ value: Translation;
3963
+ }
3964
+
3315
3965
  export declare type Tier = {
3316
3966
  attributes: {
3317
3967
  amount_cents: number;
@@ -3330,19 +3980,53 @@ export declare interface TileApplicationData {
3330
3980
  name: Translation;
3331
3981
  description?: string;
3332
3982
  logo: string;
3983
+ organizationBanner?: string;
3333
3984
  urlHandle: string;
3334
3985
  organizationId: string;
3335
3986
  type: ApplicationType;
3987
+ profilePhoto?: string;
3988
+ }
3989
+
3990
+ export declare interface TileData<ItemSpecificData = VideoTileSpecificData | TvChannelTileSpecificData | TagTileSpecificData | ArticleTileSpecificData> {
3991
+ /**
3992
+ * Tile item ID.
3993
+ */
3994
+ id: string;
3995
+ /**
3996
+ * Timestamp of the item creation.
3997
+ */
3998
+ created: number;
3999
+ /**
4000
+ * Type of the tile. VIDEO, TV_CHANNEL, TAG, ...
4001
+ */
4002
+ itemType: ROW_ITEM_TYPES;
4003
+ /**
4004
+ * Tile item name translation.
4005
+ */
4006
+ name: Translation;
4007
+ /**
4008
+ * Firestore path to the item.
4009
+ */
4010
+ path: string;
4011
+ /**
4012
+ * Application info including logo, name and number of videos.
4013
+ */
4014
+ application?: TileApplicationData;
4015
+ /**
4016
+ * Specific data for an item type (e.g. video, tv channel, tag, ...).
4017
+ */
4018
+ itemSpecificData: ItemSpecificData;
3336
4019
  }
3337
4020
 
3338
4021
  /**
3339
4022
  * @public
3340
4023
  */
3341
- export declare type TileProps = {
4024
+ export declare interface TileProps {
3342
4025
  children?: React_2.ReactNode;
3343
- cover: string;
4026
+ cover?: string;
3344
4027
  bottomLabel: string;
3345
4028
  bottomLabelAreaHeight: number;
4029
+ bottomComponent?: React_2.ReactNode;
3346
4030
  innerLabel: string;
3347
4031
  duration: string;
3348
4032
  price: string | null;
@@ -3355,7 +4039,9 @@ export declare type TileProps = {
3355
4039
  progress?: number;
3356
4040
  time?: string;
3357
4041
  logo?: string;
4042
+ bigLogo?: string;
3358
4043
  coverHeight: number;
4044
+ aspectRatio?: number;
3359
4045
  /**
3360
4046
  * Margin of inner TileContainer.
3361
4047
  * Now used for backward compatibility for WebTileGrid. Consider to use it other way.
@@ -3363,7 +4049,12 @@ export declare type TileProps = {
3363
4049
  containerMargin?: number | string;
3364
4050
  created?: Date;
3365
4051
  numberOfLines?: number;
3366
- };
4052
+ applicationName?: string;
4053
+ applicationLogo?: string;
4054
+ hasBranding?: boolean;
4055
+ applicationHandle?: string;
4056
+ fullWidth?: boolean;
4057
+ }
3367
4058
 
3368
4059
  /**
3369
4060
  * @public
@@ -3415,7 +4106,7 @@ export declare type TivioBundleFile = {
3415
4106
  /**
3416
4107
  * @public
3417
4108
  */
3418
- export declare type TivioComponents = {
4109
+ export declare interface TivioComponents {
3419
4110
  Markers: React_2.ComponentType<MarkersProps>;
3420
4111
  PlayerDataContext: React_2.Context<{
3421
4112
  player: any | null;
@@ -3437,6 +4128,7 @@ export declare type TivioComponents = {
3437
4128
  FeatureSupportCheck: React_2.ComponentType;
3438
4129
  CustomerScreen: React_2.ComponentType<{
3439
4130
  screenId: string;
4131
+ screen: Screen_2;
3440
4132
  }>;
3441
4133
  WebTagScreen: React_2.ComponentType<{
3442
4134
  tagId: string;
@@ -3448,11 +4140,13 @@ export declare type TivioComponents = {
3448
4140
  }>;
3449
4141
  WebRow: React_2.ComponentType<WebRowProps>;
3450
4142
  WebTile: React_2.ComponentType<{
3451
- item?: ItemsInRow;
4143
+ item?: ItemInRow;
3452
4144
  } & TilePropsPartial>;
3453
4145
  ChannelContext: React_2.Context<TvChannel | undefined>;
3454
4146
  ContentSortPicker: React_2.ComponentType<ContentSortPickerProps>;
3455
- };
4147
+ WebProfileScreen: React_2.ComponentType<WebProfileScreenProps>;
4148
+ WebTivioProVideoScreen: React_2.ComponentType<WebTivioProVideoScreenProps>;
4149
+ }
3456
4150
 
3457
4151
  /**
3458
4152
  * @public
@@ -3479,10 +4173,13 @@ export declare interface TivioConfig {
3479
4173
  debug?: boolean;
3480
4174
  verbose?: boolean;
3481
4175
  firebaseApp?: any | null;
4176
+ firebaseFactory?: (config: Object, appName?: string) => firebase.FirebaseApp;
4177
+ authDomainOverride?: string;
3482
4178
  firestore?: any | null;
3483
4179
  currency: Currency;
3484
4180
  applicationId?: string;
3485
4181
  isTivioProApp?: boolean;
4182
+ lockApplicationHandle?: string;
3486
4183
  /**
3487
4184
  * Configuration for GDPR consent collection (CMP)
3488
4185
  */
@@ -3543,7 +4240,7 @@ export declare type TivioHooks = {
3543
4240
  useAdSegment: () => AdSegment_2 | null;
3544
4241
  useCancelSubscription: UseCancelSubscription;
3545
4242
  useItemsInRow: (rowId?: string, options?: PaginationOptions) => {
3546
- pagination: PaginationInterface<ItemsInRow> | null;
4243
+ pagination: PaginationInterface<ItemInRow> | null;
3547
4244
  error: Error | null;
3548
4245
  };
3549
4246
  usePurchaseRecovery: () => {
@@ -3608,6 +4305,7 @@ export declare type TivioInternalComponents = {
3608
4305
  onClose: (selectedProfileId: string) => void;
3609
4306
  }>;
3610
4307
  Banner: React_2.ComponentType<BannerPropsPartial>;
4308
+ CustomAppHistoryContext: React_2.Context<HistoryContextData | undefined>;
3611
4309
  };
3612
4310
 
3613
4311
  /**
@@ -3624,7 +4322,7 @@ export declare type TivioInternalHooks = {
3624
4322
  pagination: PaginationInterface<Video> | null;
3625
4323
  error: Error | null;
3626
4324
  };
3627
- useSimilars: () => {
4325
+ useSimilars: (shouldLoadApplicationsOfOrganizations?: boolean) => {
3628
4326
  getSimilars: ({ videoId, similarsQuery }: {
3629
4327
  videoId: string;
3630
4328
  similarsQuery?: RecommendationsQuery | undefined;
@@ -3638,9 +4336,12 @@ export declare type TivioInternalHooks = {
3638
4336
  useCurrentApplication: () => {
3639
4337
  screenConfigs: ScreenConfig[] | undefined;
3640
4338
  isLoading: boolean;
3641
- switchApplicationByHandle: (handle?: string) => (Promise<void> | undefined);
3642
4339
  isDefaultOrganization: boolean;
3643
4340
  };
4341
+ useDefaultApplication: () => {
4342
+ isLoading: boolean;
4343
+ screenConfigs: ScreenConfig[] | undefined;
4344
+ };
3644
4345
  useIsMonetizationPurchased: () => {
3645
4346
  isOneOfSubscriptionPurchased: (subscriptionIds: string[]) => boolean;
3646
4347
  };
@@ -3665,6 +4366,7 @@ export declare type TivioInternalHooks = {
3665
4366
  useOrganization: () => Organization | null;
3666
4367
  useRow: UseRow;
3667
4368
  useScreen: (screenId: string | null) => Screen_2 | null;
4369
+ useCustomAppHistory: () => HistoryContextData;
3668
4370
  };
3669
4371
 
3670
4372
  /**
@@ -3945,9 +4647,9 @@ export declare type TriggerType = 'scheduled' | 'manual';
3945
4647
  /**
3946
4648
  * @public
3947
4649
  */
3948
- export declare type TvAppProps = {
4650
+ export declare interface TvAppProps {
3949
4651
  customer: CustomerId;
3950
- };
4652
+ }
3951
4653
 
3952
4654
  /**
3953
4655
  * @public
@@ -3981,6 +4683,19 @@ export declare interface TvChannel extends RowItem {
3981
4683
  type?: TvChannelType;
3982
4684
  }
3983
4685
 
4686
+ export declare interface TvChannelAssetValue extends ScalableAsset {
4687
+ pendingOverlayWidth: string;
4688
+ }
4689
+
4690
+ export declare interface TvChannelTileSpecificData {
4691
+ type: TvChannelType;
4692
+ channelKey: string;
4693
+ filters: string[];
4694
+ sources: VideoSourceField[];
4695
+ organizationId: string;
4696
+ assets?: AssetsField<TvChannelAssetValue>;
4697
+ }
4698
+
3984
4699
  export declare enum TvChannelType {
3985
4700
  /**
3986
4701
  * Classic live tv channel
@@ -4050,6 +4765,8 @@ export declare enum TvStreamType {
4050
4765
  */
4051
4766
  export declare const TvTivioProvider: React_2.FC<TivioProviderProps>;
4052
4767
 
4768
+ export declare type UpsertCommentResponse = AddEditCommentResponse | DeleteCommentResponse;
4769
+
4053
4770
  /**
4054
4771
  * @public
4055
4772
  */
@@ -4134,6 +4851,41 @@ export declare const useChannelSource: (tvChannelId: string) => {
4134
4851
  source: null;
4135
4852
  };
4136
4853
 
4854
+ /**
4855
+ * @public
4856
+ */
4857
+ export declare type UseComments = (options: UseCommentsOptions) => {
4858
+ pagination: PaginationInterface<Comment_2>;
4859
+ addComment: (options: AddCommentOptions) => Promise<UseCommentsAddEditCommentResponse>;
4860
+ editComment: (options: EditCommentOptions) => Promise<UseCommentsAddEditCommentResponse>;
4861
+ deleteComment: (commentId: string) => Promise<UseCommentsDeleteCommentResponse>;
4862
+ };
4863
+
4864
+ /**
4865
+ * @public
4866
+ */
4867
+ export declare interface UseCommentsAddEditCommentResponse {
4868
+ id?: string;
4869
+ error?: string;
4870
+ }
4871
+
4872
+ /**
4873
+ * @public
4874
+ */
4875
+ export declare interface UseCommentsDeleteCommentResponse {
4876
+ deleted?: boolean;
4877
+ error?: string;
4878
+ }
4879
+
4880
+ /**
4881
+ * @public
4882
+ */
4883
+ export declare interface UseCommentsOptions {
4884
+ videoId: string;
4885
+ mainParentId?: string;
4886
+ autoInit?: boolean;
4887
+ }
4888
+
4137
4889
  /**
4138
4890
  * @public
4139
4891
  */
@@ -4196,7 +4948,7 @@ export declare const useIsMonetizationPurchased: () => {
4196
4948
  * @public
4197
4949
  */
4198
4950
  export declare const useItemsInRow: (rowId?: string, options?: SubscribeToItemsInRowOptions) => {
4199
- pagination: PaginationInterface<ItemsInRow> | null;
4951
+ pagination: PaginationInterface<ItemInRow> | null;
4200
4952
  error: Error | null;
4201
4953
  };
4202
4954
 
@@ -4256,6 +5008,7 @@ export declare type User = {
4256
5008
  * Returns all PAID or CANCELLED user purchases (expired and non-expired)
4257
5009
  */
4258
5010
  allPurchases: Purchase[];
5011
+ availablePromotionsIds: string[];
4259
5012
  /**
4260
5013
  * Returns "active" (not CANCELLED) VoD purchases ("transaction" type)
4261
5014
  */
@@ -4269,6 +5022,7 @@ export declare type User = {
4269
5022
  */
4270
5023
  extendableSubscription?: Purchase;
4271
5024
  getPurchasedVideos: () => Video[];
5025
+ getOneTimePurchases: () => Purchase[];
4272
5026
  isPurchasesInitialized: boolean;
4273
5027
  isSignedIn: boolean;
4274
5028
  isReady: boolean;
@@ -4282,14 +5036,41 @@ export declare type User = {
4282
5036
  authUserId?: string;
4283
5037
  favorites: any[];
4284
5038
  watchedPositions: any[];
5039
+ watchHistory: any[];
4285
5040
  profiles: any[];
4286
5041
  activeUserProfileId: string | null;
4287
5042
  patreon?: PatreonUserAuth;
5043
+ subscriptionIdsToShow: string[] | null;
5044
+ followedOrganizationIds: string[];
5045
+ isAnonymous: boolean;
5046
+ isDiscordConnected: boolean;
4288
5047
  createUserProfile: (request: any) => Promise<void>;
4289
5048
  deleteUserProfile: (profileId: string) => Promise<void>;
4290
5049
  setActiveUserProfileId: (id: string) => void;
5050
+ getFollowedOrganizations: () => Promise<Array<FollowedOrganizationData | undefined>>;
5051
+ sendFinalizeRegistrationEmail: (email: string) => Promise<void>;
5052
+ isUserAlreadyRegisteredByTenant: (email: string, tenantId: string) => Promise<boolean>;
5053
+ };
5054
+
5055
+ /**
5056
+ * @public
5057
+ */
5058
+ export declare type UseReactions = (options: UseReactionsOptions) => {
5059
+ react: () => void;
5060
+ count: number;
5061
+ hasReacted: boolean;
4291
5062
  };
4292
5063
 
5064
+ /**
5065
+ * @public
5066
+ */
5067
+ export declare interface UseReactionsOptions {
5068
+ content: ReactableContent;
5069
+ reactionType: ReactionEnum;
5070
+ onUnauthorized?: () => void;
5071
+ onError?: (error: Error) => void;
5072
+ }
5073
+
4293
5074
  export declare enum UserGroup {
4294
5075
  ALL = "all",
4295
5076
  FREE = "free",
@@ -4446,7 +5227,7 @@ export declare const useVoucher: (voucherId: string) => {
4446
5227
  voucher: Voucher | null;
4447
5228
  /**
4448
5229
  * You can check error.details if you need to know error type when you want your own error messages
4449
- * (can be one of "DOES_NOT_EXIST", "EXPIRED" and "ALREADY_USED").
5230
+ * (can be one of "DOES_NOT_EXIST", "EXPIRED", "ALREADY_USED_BY_CURRENT_USER" and "ALREADY_USED").
4450
5231
  */
4451
5232
  error: Error | BadRequestError | null;
4452
5233
  /**
@@ -4510,7 +5291,7 @@ export declare interface verifyCustomTokenProps {
4510
5291
  /**
4511
5292
  * @public
4512
5293
  */
4513
- export declare interface Video extends RowItem {
5294
+ export declare interface Video extends RowItem, MonetizableItem, ReactableContent {
4514
5295
  id: string;
4515
5296
  itemType: ROW_ITEM_TYPES.VIDEO;
4516
5297
  /**
@@ -4519,35 +5300,31 @@ export declare interface Video extends RowItem {
4519
5300
  cover: string | null;
4520
5301
  sectionId: string | null;
4521
5302
  channelId: string | null;
4522
- /**
4523
- * seconds
4524
- */
4525
5303
  duration: number;
4526
5304
  path: string;
4527
5305
  tags: Tag[];
4528
5306
  image: string | null;
4529
5307
  isPlayable: boolean;
4530
5308
  monetizations: Monetization[];
4531
- /**
4532
- * Returns all transactions and subscriptions applied to this video.
4533
- * Transactions before subscriptions, sorted by price ascending.
4534
- */
4535
- getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
4536
5309
  getSourceUrl(options?: {
4537
5310
  language?: LangCode;
4538
5311
  }): Promise<GetSourceUrlResponse & {
4539
5312
  language?: LangCode;
4540
5313
  }>;
4541
- getSeekingMatrixPreviewByTime(timeMs: number, offsetIndex: number): {
5314
+ getSeekingMatrixPreviewByTime(timeMs: number, offsetIndex?: number): {
4542
5315
  url: string;
4543
5316
  x: number;
4544
5317
  y: number;
5318
+ width: number;
5319
+ height: number;
5320
+ interval: number;
4545
5321
  timeMs: number;
4546
5322
  } | null;
4547
5323
  purchasableMonetization: any | null;
4548
5324
  transaction: PurchasableMonetization | undefined;
4549
5325
  subscriptions: PurchasableMonetization[];
4550
5326
  sources?: any[];
5327
+ allSources?: any[];
4551
5328
  isPlaylist: boolean;
4552
5329
  name: string;
4553
5330
  urlNames?: string[];
@@ -4559,34 +5336,38 @@ export declare interface Video extends RowItem {
4559
5336
  from?: Date;
4560
5337
  to?: Date;
4561
5338
  detailBanner?: string;
4562
- linkedVideosRaw: any[];
4563
- linkedVideos: LinkedVideo[];
5339
+ descriptionRich?: string;
5340
+ organizationId?: string;
5341
+ linkedVideosRaw: LinkedVideoRaw[] | undefined;
5342
+ linkedVideos: LinkedVideo[] | undefined;
5343
+ pipPaths?: string[];
4564
5344
  contentType: VideoContentType | null;
4565
5345
  year?: number;
4566
5346
  episodeNumber?: number;
4567
5347
  seasonNumber?: number;
4568
5348
  getTagsOfType: (type: string) => Tag[];
5349
+ geoBlocking: GeoBlocking | undefined;
4569
5350
  loadLinkedVideos: () => any;
4570
5351
  getLinkedVideos: (type: any) => any;
4571
5352
  trailer: Video | null;
5353
+ teaser: Video | null;
5354
+ hasTasting: boolean;
5355
+ isTastingValid: () => boolean;
5356
+ tasting: Video | null;
4572
5357
  watchPosition: number | null;
4573
5358
  isFavorite: boolean;
4574
5359
  addToFavorites: () => void;
4575
5360
  removeFromFavorites: () => void;
4576
- availability: VideoAvailability | null;
5361
+ availability: ContentAvailability | null;
4577
5362
  sourceLanguages: LangCode[];
4578
5363
  urlByLanguage: (lang: LangCode) => string | undefined;
5364
+ getApplicationName: () => string | undefined;
5365
+ getApplicationLogo: () => string | undefined;
5366
+ setApplicationData: (applicationData: RowItemApplicationData) => void;
5367
+ linkedVideosInNotLoaded: () => boolean | undefined;
5368
+ initApplication: () => Promise<void>;
4579
5369
  }
4580
5370
 
4581
- /**
4582
- * @public
4583
- */
4584
- export declare type VideoAvailability = {
4585
- from: Date;
4586
- to: Date | null;
4587
- manual: boolean;
4588
- };
4589
-
4590
5371
  /**
4591
5372
  * @public
4592
5373
  */
@@ -4620,6 +5401,25 @@ export declare enum VideoSourceEncryption {
4620
5401
  PLAYREADY = "playready"
4621
5402
  }
4622
5403
 
5404
+ export declare interface VideoSourceField {
5405
+ codec: VideoSourceCodec;
5406
+ /**
5407
+ * DRM provider for given encrypted source.
5408
+ *
5409
+ * If encryption is {@link VideoSourceEncryption.NONE}, DRM provider should not be set.
5410
+ * If encryption is set to anything other than {@link VideoSourceEncryption.NONE} and DRM provider is not set, we pick the default one.
5411
+ */
5412
+ drmProvider?: DrmProvider;
5413
+ encryption: VideoSourceEncryption;
5414
+ /**
5415
+ * Lower number = higher priority (so 1 equals highest priority)
5416
+ */
5417
+ priority: VideoSourcePriority;
5418
+ protocol: VideoSourceProtocol;
5419
+ url: string;
5420
+ languages?: LangCode[];
5421
+ }
5422
+
4623
5423
  /**
4624
5424
  * Lower number = higher priority.
4625
5425
  */
@@ -4631,6 +5431,37 @@ export declare enum VideoSourceProtocol {
4631
5431
  MP4 = "mp4"
4632
5432
  }
4633
5433
 
5434
+ export declare interface VideoTileSpecificData {
5435
+ cover?: string;
5436
+ assets?: AssetsField;
5437
+ episodeNumber?: number;
5438
+ seasonNumber?: number;
5439
+ urlName?: VideoUrlNames;
5440
+ }
5441
+
5442
+ /**
5443
+ * Transcoding status of uploaded video.
5444
+ * @public
5445
+ */
5446
+ export declare enum VideoTranscodingStatus {
5447
+ /**
5448
+ * Video is not transcoded yet. It's in the queue, though.
5449
+ */
5450
+ ON_HOLD = "CREATED",
5451
+ /**
5452
+ * Video is being transcoded.
5453
+ */
5454
+ IN_PROGRESS = "ENCODING",
5455
+ /**
5456
+ * Video has been transcoded.
5457
+ */
5458
+ DONE = "ENCODING_DONE",
5459
+ /**
5460
+ * An error occured during transcoding.
5461
+ */
5462
+ ERROR = "ERROR"
5463
+ }
5464
+
4634
5465
  /**
4635
5466
  * Video type.
4636
5467
  * @public
@@ -4652,11 +5483,20 @@ export declare enum VideoType {
4652
5483
  * Part of video original video like TRAILER.
4653
5484
  */
4654
5485
  TRAILER = "TRAILER",
5486
+ /**
5487
+ * Timeshift.
5488
+ */
4655
5489
  TV_PROGRAM = "TV_PROGRAM",
4656
5490
  /**
4657
5491
  * Video object represents whole series, e.g. tv show.
4658
5492
  */
4659
- SERIES = "SERIES"
5493
+ SERIES = "SERIES",
5494
+ TEASER = "TEASER",
5495
+ TASTING = "TASTING",
5496
+ /**
5497
+ * Video that is in locked state and is used in virtual channel EPG.
5498
+ */
5499
+ VIRTUAL_PROGRAM = "VIRTUAL_PROGRAM"
4660
5500
  }
4661
5501
 
4662
5502
  /**
@@ -4745,7 +5585,7 @@ export declare interface VodTivioSourceInterface extends PlayerSourceInterface<S
4745
5585
  watermark: Watermark | null;
4746
5586
  canWatchOnDevice: boolean;
4747
5587
  isAvailable: boolean;
4748
- availability: VideoAvailability | null;
5588
+ availability: ContentAvailability | null;
4749
5589
  video: Video;
4750
5590
  clone: (params?: Partial<VodTivioSourceParams>) => VodTivioSourceInterface;
4751
5591
  }
@@ -4758,6 +5598,7 @@ export declare interface VodTivioSourceParams extends PlayerSourceParams<SourceT
4758
5598
  adMonetizationId?: string;
4759
5599
  language?: LangCode;
4760
5600
  drm?: Drm;
5601
+ ignoreWatchPosition?: boolean;
4761
5602
  }
4762
5603
 
4763
5604
  /**
@@ -4778,6 +5619,7 @@ export declare interface WarningConfirmationOverlayPayload extends ConfirmationO
4778
5619
  type: 'warning';
4779
5620
  confirmButtonText?: string;
4780
5621
  closeButtonText?: string;
5622
+ subscriptionExpirationText?: string;
4781
5623
  }
4782
5624
 
4783
5625
  /**
@@ -4788,16 +5630,216 @@ export declare interface Watermark {
4788
5630
  size: 'large' | 'medium';
4789
5631
  }
4790
5632
 
5633
+ export declare interface WebConfig {
5634
+ customer: CustomerId;
5635
+ title?: string;
5636
+ description?: string;
5637
+ logo: string;
5638
+ mobileLogo?: string;
5639
+ /**
5640
+ * Logo for loading overlay, if not present, logo is used.
5641
+ */
5642
+ logoLoadingOverlay?: string;
5643
+ tivio: WebTivioConfig;
5644
+ appColorMode?: 'light' | 'dark';
5645
+ header?: {
5646
+ /**
5647
+ * Text on buy voucher button, if not provided the default text will be used.
5648
+ */
5649
+ buyVoucherButtonText?: string;
5650
+ allowSearch?: boolean;
5651
+ logoHeight?: string;
5652
+ mobileLogoHeight?: string;
5653
+ buySubscriptionButtonText?: string;
5654
+ };
5655
+ footer?: {
5656
+ /**
5657
+ * If logo is different from logo in header
5658
+ */
5659
+ logo?: string;
5660
+ showLogo?: boolean;
5661
+ /**
5662
+ * right panel - various type of contacts to owners of website
5663
+ */
5664
+ contacts?: {
5665
+ name: string;
5666
+ contact: string;
5667
+ }[];
5668
+ /**
5669
+ * right panel - important documents for viewer of website that should know about it
5670
+ */
5671
+ documents?: {
5672
+ name: string;
5673
+ href: string;
5674
+ }[];
5675
+ /**
5676
+ * right panel - hyperlinks to social networks
5677
+ */
5678
+ socialNetworks?: {
5679
+ type: SocialNetworks;
5680
+ url: string;
5681
+ }[];
5682
+ /**
5683
+ * right panel - some short common description of website
5684
+ */
5685
+ description?: string;
5686
+ /**
5687
+ * left panel - hyperlinks to stores for downloading native app
5688
+ * if our client has some native app
5689
+ */
5690
+ storeBadges?: {
5691
+ ios?: StoreBadgeConfig;
5692
+ android?: StoreBadgeConfig;
5693
+ };
5694
+ isCentered?: boolean;
5695
+ legalInfo?: {
5696
+ name?: string;
5697
+ address?: string;
5698
+ cin?: string;
5699
+ email?: string;
5700
+ };
5701
+ cookieSettingsLabel?: string;
5702
+ };
5703
+ theme?: {
5704
+ headerType?: PaletteType;
5705
+ };
5706
+ screens?: ScreenConfig[];
5707
+ /**
5708
+ * If content is secured, then landing page is shown to hide content (customer screens, videos etc.),
5709
+ * so app requires authorization to see them.
5710
+ */
5711
+ securedContent?: boolean;
5712
+ /**
5713
+ * CSS styles for application background.
5714
+ */
5715
+ appBackground?: string;
5716
+ /**
5717
+ * CSS styles for application color.
5718
+ */
5719
+ appColor?: string;
5720
+ loader?: {
5721
+ /**
5722
+ * URL to animated image shown on splash screen.
5723
+ */
5724
+ animatedLogo?: string;
5725
+ /**
5726
+ * Defines if progress bar should be shown on loading screen.
5727
+ * Default is TRUE (see {@link AppLoadingOverlay}
5728
+ */
5729
+ showProgressBar?: boolean;
5730
+ };
5731
+ /**
5732
+ * Slug of all pages where user will be forced to fill login form if he's not logged in.
5733
+ */
5734
+ forceLogin?: string[];
5735
+ /**
5736
+ * Hides registration button from the menu and from the login form. Direct access to /registration URL will still work.
5737
+ *
5738
+ * Useful when customer is going to quit a business or leaves Tivio platform - so he doesn't want to allow
5739
+ * a creation of new users anymore.
5740
+ */
5741
+ hideRegistrationButton?: boolean;
5742
+ /**
5743
+ * Hides registration button from the login form.
5744
+ */
5745
+ allowRegistrationFromLoginForm?: boolean;
5746
+ /**
5747
+ * Customization of auth process
5748
+ */
5749
+ /**
5750
+ * When enabled choose subscription button will be shown in the header. After choosing a subscription user will be
5751
+ * redirected to registration form.
5752
+ *
5753
+ * This will also hide registration button from the header
5754
+ */
5755
+ showChooseSubscription?: boolean;
5756
+ registration?: {
5757
+ /**
5758
+ * Customization of auth form
5759
+ */
5760
+ form?: {
5761
+ subtitle?: string;
5762
+ /**
5763
+ * Optional phoneNumber form field
5764
+ */
5765
+ showPhoneNumberField?: boolean;
5766
+ /**
5767
+ * Optional bottomText (e.g. terms & conditions agreement)
5768
+ */
5769
+ bottomText?: string;
5770
+ /**
5771
+ * Toggle for showing acceptance of terms & conditions text
5772
+ */
5773
+ showAcceptanceOfTermsAndConditions?: boolean;
5774
+ };
5775
+ registrationConsent?: string;
5776
+ };
5777
+ payment?: {
5778
+ paymentConsent?: string;
5779
+ };
5780
+ /**
5781
+ * If web supports entering vouchers
5782
+ */
5783
+ supportVouchers?: boolean;
5784
+ /**
5785
+ * Config for Google Tag Manager
5786
+ */
5787
+ googleTagManagerConfig?: TagManagerArgs;
5788
+ customScripts?: CustomScript[];
5789
+ /**
5790
+ * Favicons config
5791
+ */
5792
+ favicons?: {
5793
+ /**
5794
+ * Path to folder with favicons in format generated by https://realfavicongenerator.net
5795
+ */
5796
+ folderPath: string;
5797
+ safariFavicon: {
5798
+ color: string;
5799
+ };
5800
+ msFaviconApplication: {
5801
+ color: string;
5802
+ };
5803
+ };
5804
+ monetizationSelectOverlay?: {
5805
+ title?: string;
5806
+ };
5807
+ /**
5808
+ * Google Analytics ID. If provided, Google Analytics will be enabled.
5809
+ */
5810
+ googleAnalyticsId?: string;
5811
+ /**
5812
+ * If enabled, header menu will be centered.
5813
+ */
5814
+ centeredMenu?: boolean;
5815
+ /**
5816
+ * All values are considered as false if not provided.
5817
+ */
5818
+ socialLogins?: {
5819
+ showAppleLogin?: boolean;
5820
+ showGoogleLogin?: boolean;
5821
+ showPatreonLogin?: boolean;
5822
+ };
5823
+ /**
5824
+ * If the monetizations are filled in, the MonetizationSelectOverlay displays the monetizations from that configuration.
5825
+ */
5826
+ monetizationOverride?: string[];
5827
+ /**
5828
+ * If true, robots.txt will prevent crawling of the website.
5829
+ */
5830
+ norobots?: boolean;
5831
+ }
5832
+
4791
5833
  /**
4792
5834
  * @public
4793
5835
  */
4794
- export declare type WebGridScreenProps = {
5836
+ export declare interface WebGridScreenProps {
4795
5837
  screen?: Screen_2;
4796
5838
  seriesId?: string;
4797
5839
  season?: number;
4798
5840
  rowId?: string;
4799
5841
  videoId?: string;
4800
- };
5842
+ }
4801
5843
 
4802
5844
  /**
4803
5845
  * @public
@@ -4806,6 +5848,10 @@ export declare interface WebPlayerProps {
4806
5848
  id: string;
4807
5849
  source?: SourceParams | VideoPath | ChannelPath | null;
4808
5850
  onEnded?: () => any;
5851
+ /**
5852
+ * If true, the player will inherit the width and height of its parent element.
5853
+ */
5854
+ isSameSizeAsParent?: boolean;
4809
5855
  /**
4810
5856
  * If this function is specified, then "Back" button is shown in top right corner.
4811
5857
  */
@@ -4886,25 +5932,58 @@ export declare interface WebPlayerProps {
4886
5932
  * If true, it does not play the next video when the current video reaches the end.
4887
5933
  */
4888
5934
  disablePlayNext?: boolean;
5935
+ setPaymentOverlayVisible?: React_2.Dispatch<React_2.SetStateAction<boolean>>;
4889
5936
  }
4890
5937
 
4891
5938
  /**
4892
5939
  * @public
4893
5940
  */
4894
- export declare type WebRowProps = {
4895
- items?: ItemsInRow[];
5941
+ export declare interface WebProfileScreenProps {
5942
+ onLogout: () => void;
5943
+ }
5944
+
5945
+ /**
5946
+ * @public
5947
+ */
5948
+ export declare interface WebRowProps {
5949
+ items?: ItemInRow[];
4896
5950
  variant?: RowItemComponent;
4897
5951
  rowName?: string | any;
4898
5952
  fetchMore?: () => void;
4899
- onTileClick?: (item?: ItemsInRow | null) => void;
4900
- };
5953
+ onTileClick?: (item?: ItemInRow | null) => void;
5954
+ }
4901
5955
 
4902
5956
  /**
4903
5957
  * @public
4904
5958
  */
4905
- export declare type WebSeriesDetailScreenProps = {
5959
+ export declare interface WebSeriesDetailScreenProps {
4906
5960
  tagId: string;
4907
- };
5961
+ }
5962
+
5963
+ /**
5964
+ * Previously SdkReactConfig.
5965
+ */
5966
+ export declare interface WebTivioConfig extends Omit<TivioConfig, 'language'> {
5967
+ disableUnmounting?: boolean;
5968
+ enable?: boolean;
5969
+ enableSentry?: boolean;
5970
+ ErrorComponent?: any;
5971
+ LoaderComponent?: any;
5972
+ logger?: any | null;
5973
+ language?: LangCode;
5974
+ overrideLanguage?: LangCode;
5975
+ lockApplicationHandle?: string;
5976
+ applicationId?: string;
5977
+ }
5978
+
5979
+ /**
5980
+ * @public
5981
+ */
5982
+ export declare interface WebTivioProVideoScreenProps {
5983
+ video: Video;
5984
+ seriesTag?: Tag;
5985
+ autoplay: boolean;
5986
+ }
4908
5987
 
4909
5988
  /**
4910
5989
  * @public