@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.
@@ -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
@@ -447,11 +548,11 @@ export declare const bundlePromise: Promise<RemoteBundleState>;
447
548
  /**
448
549
  * @internal
449
550
  */
450
- export declare type ButtonOptions = {
551
+ export declare interface ButtonOptions {
451
552
  backgroundImage: string;
452
553
  borderRadius: string | number;
453
554
  color?: string;
454
- };
555
+ }
455
556
 
456
557
  /**
457
558
  * @public
@@ -509,6 +610,31 @@ export declare type Chapter = any;
509
610
  */
510
611
  export declare type CmpConfig = 'default' | 'debug' | 'none';
511
612
 
613
+ /**
614
+ * @public
615
+ */
616
+ declare interface Comment_2 {
617
+ id: string;
618
+ text: string;
619
+ videoTime: number | null;
620
+ createdAt: Date;
621
+ editedAt: Date | null;
622
+ user: CommentUser | null;
623
+ reactions: Record<string, number> | null;
624
+ repliesCount: number | null;
625
+ isReady: boolean;
626
+ updateRepliesCount: (increment: boolean) => void;
627
+ }
628
+ export { Comment_2 as Comment }
629
+
630
+ /**
631
+ * @public
632
+ */
633
+ export declare interface CommentUser {
634
+ name: string;
635
+ avatarUrl: string | null;
636
+ }
637
+
512
638
  /**
513
639
  * TODO same name as core-js entity, not convenient
514
640
  * @public
@@ -555,7 +681,7 @@ export declare interface CommonSourceParams<T extends SourceType = SourceType> {
555
681
  * TODO it's the same as Customizations, not?
556
682
  * @internal
557
683
  */
558
- export declare type Components = {
684
+ export declare interface Components {
559
685
  menu: {
560
686
  height: number;
561
687
  };
@@ -566,7 +692,7 @@ export declare type Components = {
566
692
  banner: {
567
693
  height: number;
568
694
  };
569
- };
695
+ }
570
696
 
571
697
  /**
572
698
  * Just another alias. Reexported for backward compatibility.
@@ -618,6 +744,15 @@ export declare interface ConsumedAds {
618
744
  preroll: boolean;
619
745
  }
620
746
 
747
+ /**
748
+ * @public
749
+ */
750
+ export declare interface ContentAvailability {
751
+ from: Date;
752
+ to: Date | null;
753
+ manual: boolean;
754
+ }
755
+
621
756
  /**
622
757
  * @public
623
758
  */
@@ -633,11 +768,11 @@ export declare enum ContentSortEnum {
633
768
  /**
634
769
  * @public
635
770
  */
636
- export declare type ContentSortPickerProps = {
771
+ export declare interface ContentSortPickerProps {
637
772
  value: ContentSortEnum;
638
773
  isSeries?: boolean;
639
774
  onChange: (value: ContentSortEnum) => void;
640
- };
775
+ }
641
776
 
642
777
  /**
643
778
  * @public
@@ -720,12 +855,12 @@ export declare interface ConversionsTargetItem {
720
855
  * @public
721
856
  * @TODO move somewhere else
722
857
  */
723
- export declare type CoverPadding = {
858
+ export declare interface CoverPadding {
724
859
  top?: number;
725
860
  bottom?: number;
726
861
  left?: number;
727
862
  right?: number;
728
- };
863
+ }
729
864
 
730
865
  /**
731
866
  * @public
@@ -751,6 +886,8 @@ export declare interface CreateUserPayload {
751
886
  referralToken?: string;
752
887
  username?: string;
753
888
  phoneNumber?: string;
889
+ authUserId?: string;
890
+ isAnonymous?: boolean;
754
891
  }
755
892
 
756
893
  /**
@@ -758,6 +895,12 @@ export declare interface CreateUserPayload {
758
895
  */
759
896
  export declare type CreateUserWithEmailAndPassword = (email: string, password: string, username?: string, phoneNumber?: string, referralToken?: string) => Promise<string | null>;
760
897
 
898
+ export declare interface CreatorsWithVoucherSubscriptions {
899
+ id: string;
900
+ logo: string;
901
+ name: string;
902
+ }
903
+
761
904
  /**
762
905
  * @public
763
906
  */
@@ -769,10 +912,17 @@ export declare const CURRENCIES: string[];
769
912
  */
770
913
  export declare type Currency = 'CZK' | 'EUR' | 'USD';
771
914
 
915
+ /**
916
+ * Necessary because keys in cloud function config cannot contain upper-case letters.
917
+ * Has to be in sync with {@link Currency}.
918
+ */
919
+ export declare type CurrencyLowerCase = 'czk' | 'eur' | 'usd';
920
+
772
921
  /**
773
922
  * @public
774
923
  */
775
924
  export declare enum CustomerId {
925
+ CESTMIR_STRAKATY = "CESTMIR_STRAKATY",
776
926
  CNC = "CNC",
777
927
  DVTV = "DVTV",
778
928
  DVTV_DEV = "DVTV_DEV",
@@ -782,23 +932,31 @@ export declare enum CustomerId {
782
932
  INVESTICNI_PRUVODCE = "INVESTICNI_PRUVODCE",
783
933
  INVESTOREES = "INVESTOREES",
784
934
  JOJ = "JOJ",
935
+ KLUCI_Z_PRAHY = "KLUCI_Z_PRAHY",
785
936
  MALL = "MALL",
786
937
  MEDIAR = "MEDIAR",
787
938
  NANGU_DEV = "NANGU_DEV",
788
939
  O2 = "O2",
789
940
  OKTAGON = "OKTAGON",
941
+ ONDREJ_AUST = "ONDREJ_AUST",
790
942
  ONDREJ_KOBERSKY = "ONDREJ_KOBERSKY",
943
+ REALTALK = "REALTALK",
791
944
  STARMAX = "STARMAX",
792
- STORYBOOK = "STORYBOOK",
945
+ STARGAZE = "STARGAZE",
946
+ STORYBOOK = "STORYBOOK",// dev
793
947
  TIVIO = "TIVIO",
948
+ TIVIO_PRO = "TIVIO_PRO",
794
949
  U_KULATEHO_STOLU = "U_KULATEHO_STOLU",
795
- STARME = "STARME"
950
+ VIRTUAL_CHANNEL_VIDEOS = "VIRTUAL_CHANNEL_VIDEOS",
951
+ VOJTA_ZIZKA = "VOJTA_ZIZKA",
952
+ LIGA_NARUBY = "LIGA_NARUBY",
953
+ VIC_NEZ_SI_MYSLITE = "VIC_NEZ_SI_MYSLITE"
796
954
  }
797
955
 
798
956
  /**
799
957
  * @internal
800
958
  */
801
- export declare type Customizations = {
959
+ export declare interface Customizations {
802
960
  Tile: TileOptions;
803
961
  Button: ButtonOptions;
804
962
  Banner: {
@@ -823,6 +981,11 @@ export declare type Customizations = {
823
981
  };
824
982
  borderRadius: string | number;
825
983
  };
984
+ Monetization?: {
985
+ borderRadius?: number;
986
+ backgroundColor?: string;
987
+ color?: string;
988
+ };
826
989
  SplitBanner: {
827
990
  height: string;
828
991
  Image: {
@@ -831,6 +994,16 @@ export declare type Customizations = {
831
994
  };
832
995
  };
833
996
  };
997
+ OrganizationBanner?: {
998
+ logo?: {
999
+ height: string;
1000
+ width: string;
1001
+ };
1002
+ primaryButton?: {
1003
+ backgroundColor: string;
1004
+ color: string;
1005
+ };
1006
+ };
834
1007
  Row: {
835
1008
  /**
836
1009
  * Customizations of Banner component that is used as Row on Customer screen (e.g. WebBannerData)
@@ -839,18 +1012,28 @@ export declare type Customizations = {
839
1012
  borderRadius: string | number;
840
1013
  };
841
1014
  header: {
842
- opacity: number;
1015
+ opacity?: number;
843
1016
  };
844
1017
  };
1018
+ ProgressBar?: {
1019
+ color: string;
1020
+ showDot: boolean;
1021
+ };
845
1022
  Header: {
846
1023
  backgroundColor: string;
847
1024
  activeLinkUnderlineColor: string;
848
1025
  logoHeight: string;
1026
+ mobileLogoHeight?: string;
849
1027
  borderBottom: string;
850
1028
  color?: string;
851
1029
  };
1030
+ CenteredMenu?: {
1031
+ backgroundColor: string;
1032
+ menuLinkColor: string;
1033
+ };
852
1034
  Footer: {
853
1035
  backgroundColor: string;
1036
+ color: string;
854
1037
  };
855
1038
  VideoDetail: {
856
1039
  Banner: {
@@ -869,12 +1052,12 @@ export declare type Customizations = {
869
1052
  };
870
1053
  };
871
1054
  };
872
- TagsRow: {
1055
+ TagsRow?: {
873
1056
  /**
874
1057
  * Tags of this tag type is shown in tags row on video detail screen.
875
1058
  * The same config is used for SplitBanner.
876
1059
  */
877
- tagTypeId: string;
1060
+ tagTypeId?: string;
878
1061
  /**
879
1062
  * Row title
880
1063
  */
@@ -886,6 +1069,16 @@ export declare type Customizations = {
886
1069
  AttributeTexts?: {
887
1070
  color: string;
888
1071
  mobileColor?: string;
1072
+ display?: 'none' | 'block';
1073
+ };
1074
+ OverlayControls?: {
1075
+ size?: number;
1076
+ sizeMobile?: number;
1077
+ backgroundColor?: string;
1078
+ hoverBackgroundColor?: string;
1079
+ borderColor?: string | null;
1080
+ scaleUp?: boolean;
1081
+ lowerOpacityMobile?: boolean;
889
1082
  };
890
1083
  };
891
1084
  Input: InputOptions;
@@ -916,7 +1109,13 @@ export declare type Customizations = {
916
1109
  backgroundColor: string;
917
1110
  color: string;
918
1111
  };
919
- };
1112
+ }
1113
+
1114
+ export declare interface CustomScript {
1115
+ src: string;
1116
+ event?: EventName;
1117
+ isAsync?: boolean;
1118
+ }
920
1119
 
921
1120
  /**
922
1121
  * @internal
@@ -969,14 +1168,19 @@ export declare const DEFAULT_ORDER_BY: {
969
1168
  */
970
1169
  export declare type DefaultOrderByField = 'created';
971
1170
 
1171
+ export declare type DeleteCommentResponse = {
1172
+ deleted: boolean;
1173
+ };
1174
+
972
1175
  /**
973
1176
  * @public
974
1177
  */
975
- export declare type DetailedPrice = {
1178
+ export declare interface DetailedPrice {
976
1179
  amount: number;
977
1180
  currency: Currency;
978
1181
  frequency?: MONETIZATION_FREQUENCY;
979
- };
1182
+ durationDays?: number;
1183
+ }
980
1184
 
981
1185
  /**
982
1186
  * @public
@@ -1001,10 +1205,10 @@ declare type Disposer_2 = () => void;
1001
1205
  /**
1002
1206
  * @public
1003
1207
  */
1004
- export declare type DividerProps = {
1208
+ export declare interface DividerProps {
1005
1209
  verticalSpacing?: number;
1006
1210
  horizontalSpacing?: number;
1007
- };
1211
+ }
1008
1212
 
1009
1213
  /**
1010
1214
  * @public
@@ -1065,6 +1269,15 @@ export declare enum DurationUnits {
1065
1269
  MONTH = "month"
1066
1270
  }
1067
1271
 
1272
+ /**
1273
+ * @public
1274
+ */
1275
+ export declare interface EditCommentOptions extends Omit<AddCommentOptions, 'parentCommentId'> {
1276
+ commentId: string;
1277
+ text: string;
1278
+ videoTime?: number;
1279
+ }
1280
+
1068
1281
  /**
1069
1282
  * Represents a SendGrid transactional template.
1070
1283
  */
@@ -1174,6 +1387,10 @@ export declare type Empty = void | Promise<void> | undefined | Promise<undefined
1174
1387
  */
1175
1388
  declare type Empty_2 = void | Promise<void> | undefined | Promise<undefined>;
1176
1389
 
1390
+ export declare enum EventName {
1391
+ REGISTRATION_DONE = "REGISTRATION_DONE"
1392
+ }
1393
+
1177
1394
  /**
1178
1395
  * @public
1179
1396
  */
@@ -1202,6 +1419,21 @@ export declare const fetchBundle: (secret: string, conf: InternalConfig) => Prom
1202
1419
  */
1203
1420
  declare type FetchPackage = (url: string) => Promise<string>;
1204
1421
 
1422
+ /**
1423
+ * @public
1424
+ */
1425
+ export declare type FollowedOrganizationData = {
1426
+ id: string;
1427
+ name: string;
1428
+ application: {
1429
+ id: string;
1430
+ urlHandle: string;
1431
+ logo?: string;
1432
+ logoLandscape?: string;
1433
+ profilePhoto?: string;
1434
+ };
1435
+ };
1436
+
1205
1437
  /**
1206
1438
  * Counterpart for {@link ForbiddenError} from @tivio/api.
1207
1439
  * @public
@@ -1231,6 +1463,15 @@ export declare interface GenericOnCallError extends Error {
1231
1463
  details?: Record<string, string>;
1232
1464
  }
1233
1465
 
1466
+ /**
1467
+ * @public
1468
+ */
1469
+ export declare type GeoBlocking = {
1470
+ whitelist: Array<any>;
1471
+ } | {
1472
+ blacklist: Array<any>;
1473
+ };
1474
+
1234
1475
  export declare interface GetBaseAnalyticsRequest {
1235
1476
  /**
1236
1477
  * Id of organization to return analytics data.
@@ -1254,6 +1495,12 @@ export declare interface GetMonetizationsAnalyticsResponse {
1254
1495
  monetizationsAnalytics: MonetizationSummaryItem[];
1255
1496
  }
1256
1497
 
1498
+ export declare type GetMonetizationsCountsAnalyticsRequest = GetBaseAnalyticsRequest;
1499
+
1500
+ export declare interface GetMonetizationsCountsAnalyticsResponse {
1501
+ monetizationsCountsAnalytics: MonetizationsCountsSummaryItem[];
1502
+ }
1503
+
1257
1504
  /**
1258
1505
  * Share singleton instance
1259
1506
  * @public
@@ -1263,9 +1510,9 @@ export declare const getPubSub: () => PubSub;
1263
1510
  /**
1264
1511
  * @public
1265
1512
  */
1266
- export declare type GetPurchasableMonetizationsOptions = {
1513
+ export declare interface GetPurchasableMonetizationsOptions {
1267
1514
  includeMonetizationsWithPurchaseDisabled: boolean;
1268
- };
1515
+ }
1269
1516
 
1270
1517
  /**
1271
1518
  * Response from Tivio getPurchaseInfo HTTP endpoint.
@@ -1282,6 +1529,8 @@ export declare type GetPurchaseInfoResponse = {
1282
1529
  };
1283
1530
  };
1284
1531
 
1532
+ export declare type GetRowsInScreenResponse = PaginatedResponse<RowInScreen, 'screenId'>;
1533
+
1285
1534
  export declare interface GetSourceUrlRequest {
1286
1535
  /**
1287
1536
  * Id of the document to return source for.
@@ -1353,6 +1602,8 @@ export declare interface GetSourceUrlResponse {
1353
1602
  audioOnly?: boolean;
1354
1603
  }
1355
1604
 
1605
+ export declare type GetTilesInRowResponse<U extends NextPageParamType = NextPageParamType> = PaginatedResponse<TileData, U>;
1606
+
1356
1607
  export declare interface GetVideoAnalyticsErrorItem {
1357
1608
  count: number;
1358
1609
  timestamp: number;
@@ -1421,19 +1672,26 @@ export declare enum GRID_TYPES {
1421
1672
  SERIES = "SERIES"
1422
1673
  }
1423
1674
 
1424
- declare type IncludedItem = {
1675
+ /**
1676
+ * @public
1677
+ */
1678
+ export declare interface HistoryContextData {
1679
+ history: string[];
1680
+ backOrRedirectToRoot: () => void;
1681
+ }
1682
+
1683
+ export declare type IncludedItem = {
1425
1684
  attributes: {
1426
1685
  next_charge_date: string;
1427
- /**
1428
- * A null value indicates the member has never pledged. Can be null.
1429
- */
1430
- patron_status: 'active_patron' | 'declined_patron' | 'former_patron' | null;
1686
+ patron_status: PatreonStatus;
1431
1687
  /**
1432
1688
  * The only successful status is Paid. null if never charged. Can be null.
1433
1689
  * One of Paid Declined Deleted Pending Refunded Fraud Other.
1434
1690
  */
1435
1691
  last_charge_status: 'Paid' | 'Declined' | 'Deleted' | 'Pending' | 'Refunded' | 'Fraud' | 'Other';
1436
1692
  last_charge_date: string;
1693
+ pledge_relationship_start: string;
1694
+ campaign_lifetime_support_cents: number;
1437
1695
  };
1438
1696
  id: string;
1439
1697
  type: string;
@@ -1494,7 +1752,16 @@ export declare interface IndexedVideo extends IndexedObject {
1494
1752
  sharedOrganizationPaths?: string[];
1495
1753
  tagPaths?: string[];
1496
1754
  created: Date | string;
1755
+ /**
1756
+ * Is evaluated on publishedStatus and transcodingStatus fields.
1757
+ * TODO this will be true for videos with UNLISTED status, which is unintuitive for 'isDraft', we need to rename this
1758
+ */
1497
1759
  isDraft: boolean;
1760
+ /**
1761
+ * TODO: Remove optional once we have all videos with transcodingStatus and publishedStatus set in algolia
1762
+ */
1763
+ transcodingStatus?: VideoTranscodingStatus;
1764
+ publishedStatus?: PublishedStatus;
1498
1765
  type: VideoType;
1499
1766
  contentType?: VideoContentType;
1500
1767
  name: string | Translation;
@@ -1510,14 +1777,25 @@ export declare interface IndexedVideo extends IndexedObject {
1510
1777
  * True if the video is available in Tivio Pro (StarMe)
1511
1778
  */
1512
1779
  isTivioPro: boolean;
1780
+ /**
1781
+ * See {@link VideoDocument.monetizationAccessRefs}.
1782
+ * We need explicitly set to false when there are no access monetizations set,
1783
+ * because algolia can't filter based on absence of attribute,
1784
+ * see https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/how-to/filter-by-attributes/#filter-by-null-or-missing-attributes.
1785
+ */
1786
+ monetizationAccessIds: string[] | false;
1513
1787
  }
1514
1788
 
1515
1789
  /**
1516
1790
  * @internal
1517
1791
  */
1518
- export declare type InputOptions = {
1792
+ export declare interface InputOptions {
1519
1793
  borderRadius: string;
1520
- };
1794
+ backgroundColor?: string;
1795
+ color?: string;
1796
+ }
1797
+
1798
+ export declare type IntegrationType = 'discord' | 'patreon';
1521
1799
 
1522
1800
  /**
1523
1801
  * @public
@@ -1597,7 +1875,7 @@ export declare type ItemComponent = RowItemComponent | BannerItemComponent;
1597
1875
  /**
1598
1876
  * @public
1599
1877
  */
1600
- export declare type ItemsInRow = Tag | Video | TvChannel | Advertisement;
1878
+ export declare type ItemInRow = Tag | Video | TvChannel | Advertisement | Application | Article;
1601
1879
 
1602
1880
  /**
1603
1881
  * @public
@@ -1607,6 +1885,11 @@ export declare interface JojExternals {
1607
1885
  tvProfiContentId?: string;
1608
1886
  tvProfiSerialId?: string;
1609
1887
  contentId?: string;
1888
+ /**
1889
+ * Temporary contentId used only for live channel. The video is already encoded and stored in our storage
1890
+ * but is also stored on nangu platform to be used for live channel.
1891
+ */
1892
+ dvtvExtraContentId?: string;
1610
1893
  provysId?: string;
1611
1894
  tvProfiProvysId?: string;
1612
1895
  tvProfiHouseId?: string;
@@ -1649,10 +1932,18 @@ export declare type LanguageType = `${LangCode}`;
1649
1932
  /**
1650
1933
  * @public
1651
1934
  */
1652
- export declare type LinkedVideo = {
1935
+ export declare interface LinkedVideo {
1653
1936
  video: Video;
1654
- type: 'CUT' | 'TRAILER' | 'BONUS' | 'CHILD';
1655
- };
1937
+ type: 'CUT' | 'TRAILER' | 'BONUS' | 'CHILD' | 'TEASER' | 'TASTING' | 'VIRTUAL_PROGRAM' | 'PIP';
1938
+ }
1939
+
1940
+ /**
1941
+ * @public
1942
+ */
1943
+ export declare interface LinkedVideoRaw {
1944
+ videoRef: any;
1945
+ type: LinkedVideo['type'];
1946
+ }
1656
1947
 
1657
1948
  declare type Links = {
1658
1949
  self: string;
@@ -1757,7 +2048,9 @@ declare type LoggerArgs = any[];
1757
2048
 
1758
2049
  export declare enum LoginRedirect {
1759
2050
  PAYMENT = "payment",
1760
- VOUCHER = "voucher"
2051
+ VOUCHER = "voucher",
2052
+ VOUCHER_PURCHASE = "voucherPurchase",
2053
+ MAGENTA_MOMENTS = "magenta_moments"
1761
2054
  }
1762
2055
 
1763
2056
  /**
@@ -1785,10 +2078,10 @@ export declare interface Marker {
1785
2078
  /**
1786
2079
  * @public
1787
2080
  */
1788
- export declare type MarkersProps = {
2081
+ export declare interface MarkersProps {
1789
2082
  color?: string;
1790
2083
  className?: string;
1791
- };
2084
+ }
1792
2085
 
1793
2086
  declare type Membership = {
1794
2087
  id: string;
@@ -1801,7 +2094,23 @@ declare type Membership = {
1801
2094
  */
1802
2095
  export declare interface MigratedVideoExternals {
1803
2096
  externalVideoId: string;
1804
- additionalData: any;
2097
+ additionalData?: any;
2098
+ }
2099
+
2100
+ export declare interface MonetizableItem {
2101
+ /**
2102
+ * Returns true if content is purchased (via transaction or subscription) or free.
2103
+ */
2104
+ isPaid: boolean;
2105
+ /**
2106
+ * Gets the most relevant monetization for this content.
2107
+ */
2108
+ purchasableMonetization: PurchasableMonetization | null;
2109
+ /**
2110
+ * Returns all transactions and subscriptions applied to this video.
2111
+ * Transactions before subscriptions, sorted by price ascending.
2112
+ */
2113
+ getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
1805
2114
  }
1806
2115
 
1807
2116
  /**
@@ -1812,6 +2121,7 @@ export declare interface Monetization {
1812
2121
  type?: MonetizationType;
1813
2122
  name?: string;
1814
2123
  description?: string;
2124
+ organizationId?: string;
1815
2125
  }
1816
2126
 
1817
2127
  /**
@@ -1857,6 +2167,21 @@ export declare interface MonetizationCardProps {
1857
2167
  focused?: boolean;
1858
2168
  }
1859
2169
 
2170
+ export declare interface MonetizationsCountsSummaryItem {
2171
+ /**
2172
+ * Unix timestamp at which the data is aggregated
2173
+ */
2174
+ date: number;
2175
+ /**
2176
+ * ID of monetization
2177
+ */
2178
+ monetizationId: string;
2179
+ /**
2180
+ * Count of active purchases for that date
2181
+ */
2182
+ count: number;
2183
+ }
2184
+
1860
2185
  /**
1861
2186
  * @public
1862
2187
  */
@@ -1873,8 +2198,15 @@ export declare interface MonetizationsSelectOverlayData {
1873
2198
  */
1874
2199
  voucherPurchase?: boolean;
1875
2200
  registrationRedirect?: boolean;
2201
+ organizationId?: string;
1876
2202
  onPurchase?: () => void;
1877
2203
  onClose?: () => void;
2204
+ hideActivateVoucherButton?: boolean;
2205
+ showHeaderBackButton?: boolean;
2206
+ /**
2207
+ * Applies only if {@link subscriptions} are passed.
2208
+ */
2209
+ doNotFilterPassedSubscriptions?: boolean;
1878
2210
  }
1879
2211
 
1880
2212
  /**
@@ -1883,7 +2215,7 @@ export declare interface MonetizationsSelectOverlayData {
1883
2215
  export declare type MonetizationsSelectOverlayState = {
1884
2216
  isOpen: boolean;
1885
2217
  data: MonetizationsSelectOverlayData | null;
1886
- openMonetizationsSelectOverlay: (data: MonetizationsSelectOverlayData) => void;
2218
+ openMonetizationsSelectOverlay: (data?: MonetizationsSelectOverlayData) => void;
1887
2219
  closeMonetizationsSelectOverlay: () => void;
1888
2220
  };
1889
2221
 
@@ -1943,6 +2275,8 @@ export declare type NewVoucher = {
1943
2275
  expirationDate: Date | number;
1944
2276
  };
1945
2277
 
2278
+ declare type NextPageParamType = 'screenId' | 'rowId' | 'filter';
2279
+
1946
2280
  /**
1947
2281
  * @public
1948
2282
  */
@@ -2017,8 +2351,13 @@ declare type OrderByDirection = 'desc' | 'asc';
2017
2351
  * @public
2018
2352
  */
2019
2353
  export declare interface Organization {
2354
+ id: string;
2020
2355
  userProfileConfiguration: any;
2021
2356
  screenConfigs: ScreenConfig[];
2357
+ logo: string | null;
2358
+ logoLandscape: string | null;
2359
+ organizationBanner: string | null;
2360
+ profilePhoto: string | null;
2022
2361
  }
2023
2362
 
2024
2363
  /**
@@ -2031,6 +2370,23 @@ export declare type OtherSource = SourceBase & StartAndContinuePosition & {
2031
2370
  type: 'other';
2032
2371
  };
2033
2372
 
2373
+ export declare interface PaginatedResponse<T = unknown, U extends NextPageParamType = NextPageParamType> {
2374
+ items: T[];
2375
+ nextPageParams: {
2376
+ offset: number;
2377
+ limit: number;
2378
+ } & (U extends 'screenId' ? {
2379
+ organizationId: string;
2380
+ screenId: string;
2381
+ initialTilesCount: number;
2382
+ } : U extends 'rowId' ? {
2383
+ organizationId: string;
2384
+ rowId: string;
2385
+ } : U extends 'filter' ? {
2386
+ filter: Omit<RowFilterField, 'limit'>;
2387
+ } : {}) | null;
2388
+ }
2389
+
2034
2390
  /**
2035
2391
  * @public
2036
2392
  */
@@ -2050,6 +2406,18 @@ export declare type PaginationOptions = Partial<{
2050
2406
  noAutoFetch: boolean;
2051
2407
  }>;
2052
2408
 
2409
+ /**
2410
+ * @public
2411
+ */
2412
+ export declare interface PartialRegistrationOverlayContextState {
2413
+ isOpen: boolean;
2414
+ openOverlay: (onEmailSent?: () => void, origin?: RegistrationRedirect, voucher?: string) => void;
2415
+ closeOverlay: () => void;
2416
+ onEmailSent?: () => void;
2417
+ origin?: RegistrationRedirect;
2418
+ voucher?: string;
2419
+ }
2420
+
2053
2421
  export declare type PatreonCreatorData = {
2054
2422
  campaign: string;
2055
2423
  tiers: Tier[];
@@ -2065,6 +2433,11 @@ declare type PatreonError = {
2065
2433
  title?: string;
2066
2434
  };
2067
2435
 
2436
+ /**
2437
+ * A null value indicates the member has never pledged. Can be null.
2438
+ */
2439
+ export declare type PatreonStatus = 'active_patron' | 'declined_patron' | 'former_patron' | null;
2440
+
2068
2441
  export declare type PatreonUserAuth = {
2069
2442
  access_token: string;
2070
2443
  refresh_token: string;
@@ -2074,9 +2447,16 @@ export declare type PatreonUserAuth = {
2074
2447
  version?: string;
2075
2448
  };
2076
2449
 
2450
+ export declare interface PatreonUserAuthWithCreated extends PatreonUserAuth {
2451
+ /**
2452
+ * unix timestamp in ms
2453
+ */
2454
+ created: number;
2455
+ }
2456
+
2077
2457
  export declare type PatreonUserResponse = {
2078
2458
  data: Data;
2079
- included: IncludedItem[];
2459
+ included?: IncludedItem[];
2080
2460
  links: Links;
2081
2461
  errors?: PatreonError[];
2082
2462
  };
@@ -2134,6 +2514,7 @@ export declare interface PlayerCapability {
2134
2514
  * @public
2135
2515
  */
2136
2516
  export declare type PlayerConfig = {
2517
+ enabled?: boolean;
2137
2518
  /**
2138
2519
  * Some devices do not seek exactly
2139
2520
  *
@@ -2310,6 +2691,7 @@ export declare interface PlayerEngineInterface {
2310
2691
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#playsinline
2311
2692
  */
2312
2693
  setPlaysInline(value: boolean): void;
2694
+ setControlsList(value: string[]): void;
2313
2695
  }
2314
2696
 
2315
2697
  /**
@@ -2389,6 +2771,7 @@ export declare interface PlayerInterface {
2389
2771
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#playsinline
2390
2772
  */
2391
2773
  setPlaysInline?: (value: boolean) => void;
2774
+ setControlsList?: (value: string[]) => void;
2392
2775
  }
2393
2776
 
2394
2777
  /**
@@ -2568,6 +2951,8 @@ export declare type PlayerWrapperEventTypeType = `${PlayerWrapperEventType}`;
2568
2951
  export declare interface Promotion {
2569
2952
  duration?: Duration;
2570
2953
  price?: number;
2954
+ requiresPaymentAuthorization?: boolean;
2955
+ hideOtherSubscriptions?: boolean;
2571
2956
  }
2572
2957
 
2573
2958
  /**
@@ -2575,6 +2960,25 @@ export declare interface Promotion {
2575
2960
  */
2576
2961
  export declare type PromotionType = 'CLASSIC' | 'PATREON';
2577
2962
 
2963
+ /**
2964
+ * @public
2965
+ */
2966
+ export declare enum PublishedStatus {
2967
+ /**
2968
+ * Content is not published, is not shown in any application and cannot be played,
2969
+ * even if user enters url directly into browser.
2970
+ */
2971
+ DRAFT = "DRAFT",
2972
+ /**
2973
+ * Content is published and can be accessed and played freely in any application.
2974
+ */
2975
+ PUBLISHED = "PUBLISHED",
2976
+ /**
2977
+ * Content is not visible in the application (e.g. rows, search), but if user has direct url to it, they can play it.
2978
+ */
2979
+ UNLISTED = "UNLISTED"
2980
+ }
2981
+
2578
2982
  /**
2579
2983
  * @public
2580
2984
  */
@@ -2597,6 +3001,7 @@ export declare interface PurchasableMonetization extends Monetization {
2597
3001
  price?: string | number;
2598
3002
  promotion: Promotion | null;
2599
3003
  frequency?: MONETIZATION_FREQUENCY;
3004
+ durationDays?: number;
2600
3005
  /**
2601
3006
  * Returns TRUE if subscription is purchased (and not expired) by user.
2602
3007
  * Returns TRUE if transaction is purchased (and not expired) for transactionItemId.
@@ -2622,6 +3027,10 @@ export declare interface PurchasableMonetization extends Monetization {
2622
3027
  * Returns array of tag ids of monetization placements
2623
3028
  */
2624
3029
  tagIds: string[];
3030
+ /**
3031
+ * When set to true, subscription is hidden in UI (e.g. in MonetizationSelectOverlay).
3032
+ */
3033
+ subscriptionIsHidden?: boolean;
2625
3034
  }
2626
3035
 
2627
3036
  /**
@@ -2637,6 +3046,7 @@ export declare type Purchase = {
2637
3046
  */
2638
3047
  createdBy?: string;
2639
3048
  expirationDate: Date | null;
3049
+ gateway: PurchaseDocumentGateway | null;
2640
3050
  id: string;
2641
3051
  isExpired: boolean;
2642
3052
  /**
@@ -2656,6 +3066,8 @@ export declare type Purchase = {
2656
3066
  videoId: string | null;
2657
3067
  videoRef: any | null;
2658
3068
  voucherId: string | null;
3069
+ isVoucherActivation?: boolean;
3070
+ rebalancingVideoRef?: any;
2659
3071
  };
2660
3072
 
2661
3073
  /**
@@ -2667,7 +3079,8 @@ export declare enum PurchaseDocumentGateway {
2667
3079
  'voucher' = "voucher",
2668
3080
  'comgate' = "comgate",
2669
3081
  'tivio' = "tivio",
2670
- 'patreon' = "patreon"
3082
+ 'patreon' = "patreon",
3083
+ 'paypal' = "paypal"
2671
3084
  }
2672
3085
 
2673
3086
  /**
@@ -2694,6 +3107,10 @@ export declare type PurchaseEndpointPayload = {
2694
3107
  * really expire at this timestamp - additional payment of this subscription can occur so expiration timestamp may be increased.
2695
3108
  */
2696
3109
  expiration?: number;
3110
+ /**
3111
+ * If purchase was made outside of standard Tivio payment method (e.g PayPal), this is its ID.
3112
+ */
3113
+ externalId?: string;
2697
3114
  /**
2698
3115
  * Gateway name or "voucher".
2699
3116
  */
@@ -2715,9 +3132,10 @@ export declare type PurchaseEndpointPayload = {
2715
3132
  */
2716
3133
  originalPurchaseId?: string;
2717
3134
  /**
2718
- * Purchase status before change.
3135
+ * Purchase status before change. Not present for new documents - e.g. for reoccurring payment (old document is
3136
+ * set to RENEWED, new document is created with PAID status).
2719
3137
  */
2720
- previousStatus: PurchaseStatus;
3138
+ previousStatus?: PurchaseStatus;
2721
3139
  /**
2722
3140
  * Timestamp of the last change of the purchase - in this case it is timestamp when it was paid.
2723
3141
  */
@@ -2810,8 +3228,8 @@ export declare type PurchaseEndpointPayload = {
2810
3228
  * @public
2811
3229
  */
2812
3230
  export declare type PurchaseMonetization = {
3231
+ durationDays?: MONETIZATION_DURATION | number;
2813
3232
  currency?: Currency;
2814
- period?: number;
2815
3233
  price?: number;
2816
3234
  /**
2817
3235
  * Here are only transaction and subscription because purchasing of advertisement monetization doesn't make sense.
@@ -2877,6 +3295,7 @@ export declare interface QerkoCancellationInfo {
2877
3295
  export declare interface QerkoData {
2878
3296
  monetization: PurchasableMonetization;
2879
3297
  item?: Video | TvChannel;
3298
+ isMagentaMoments?: boolean;
2880
3299
  /**
2881
3300
  * If set to true, user is buying voucher.
2882
3301
  * Otherwise, user is making a purchase for himself.
@@ -2914,6 +3333,7 @@ export declare interface QerkoPaymentInfo {
2914
3333
  monetizationType: MonetizationType;
2915
3334
  recovery?: boolean;
2916
3335
  monetizationFrequency: MONETIZATION_FREQUENCY;
3336
+ customToken?: string;
2917
3337
  }
2918
3338
 
2919
3339
  /**
@@ -2929,6 +3349,38 @@ export declare interface QerkoPaymentProps {
2929
3349
  masterCardLogoUrl?: string;
2930
3350
  }
2931
3351
 
3352
+ /**
3353
+ * Request body which is accepted by qerkoPaymentWebhookByApiKey endpoint.
3354
+ *
3355
+ * @public
3356
+ */
3357
+ export declare interface QerkoPaymentWebhookByApiKeyRequest {
3358
+ /**
3359
+ * Payment state.
3360
+ */
3361
+ state: 'PAID' | 'CANCELLED';
3362
+ /**
3363
+ * Tivio purchase ID.
3364
+ */
3365
+ idOrder: string;
3366
+ payment: {
3367
+ additionalData: {
3368
+ /**
3369
+ * Tivio user ID.
3370
+ */
3371
+ userId: string;
3372
+ };
3373
+ };
3374
+ /**
3375
+ * Gateway where payment was made.
3376
+ */
3377
+ gateway?: PurchaseDocumentGateway;
3378
+ /**
3379
+ * If purchase was made outside of standard Tivio payment method (e.g PayPal), this is its ID.
3380
+ */
3381
+ externalPurchaseId?: string;
3382
+ }
3383
+
2932
3384
  /**
2933
3385
  * @public
2934
3386
  */
@@ -2940,6 +3392,39 @@ export declare interface QerkoTransaction {
2940
3392
  voucherId?: string;
2941
3393
  }
2942
3394
 
3395
+ /**
3396
+ * @public
3397
+ */
3398
+ export declare interface ReactableContent {
3399
+ path: string;
3400
+ reactions: {
3401
+ [key in ReactionEnum]?: number;
3402
+ } | null;
3403
+ updateReactionCount: (reaction: ReactionEnum, newCount: number) => void;
3404
+ }
3405
+
3406
+ /**
3407
+ * @public
3408
+ */
3409
+ export declare enum ReactionEnum {
3410
+ LIKE = "LIKE",
3411
+ DISLIKE = "DISLIKE",
3412
+ LOVE = "LOVE",
3413
+ HAHA = "HAHA",
3414
+ WOW = "WOW",
3415
+ SAD = "SAD",
3416
+ ANGRY = "ANGRY",
3417
+ CARE = "CARE",
3418
+ SUPPORT = "SUPPORT",
3419
+ PRAY = "PRAY",
3420
+ THINK = "THINK",
3421
+ CELEBRATE = "CELEBRATE",
3422
+ THANKFUL = "THANKFUL",
3423
+ LAUGH = "LAUGH",
3424
+ INSPIRED = "INSPIRED",
3425
+ AWW = "AWW"
3426
+ }
3427
+
2943
3428
  /**
2944
3429
  * @public
2945
3430
  */
@@ -2955,7 +3440,10 @@ export declare type ReactNativeDeviceInfo = {
2955
3440
  };
2956
3441
 
2957
3442
  export declare enum RegistrationRedirect {
2958
- PAYMENT = "payment"
3443
+ PAYMENT = "payment",
3444
+ VOUCHER_PURCHASE = "voucherPurchase",
3445
+ VOUCHER = "voucher",
3446
+ MAGENTA_MOMENTS = "magenta_moments"
2959
3447
  }
2960
3448
 
2961
3449
  declare type Relationship = {
@@ -2979,11 +3467,11 @@ export declare type RemoteBundleState = {
2979
3467
  /**
2980
3468
  * @public
2981
3469
  */
2982
- export declare type RemoteProviderProps = {
3470
+ export declare interface RemoteProviderProps {
2983
3471
  disableUnmounting?: boolean;
2984
3472
  language?: LangCode;
2985
3473
  children: React_2.ReactNode;
2986
- };
3474
+ }
2987
3475
 
2988
3476
  /**
2989
3477
  * Conditions that are dynamically applied to screens before they are rendered.
@@ -2992,20 +3480,33 @@ export declare type RemoteProviderProps = {
2992
3480
  * 'else' indicates what should happen if the conditions are not met.
2993
3481
  * 'elseValue' is a payload.
2994
3482
  */
2995
- export declare type RenderCondition = {
3483
+ export declare interface RenderCondition {
2996
3484
  type: ScreenConditionType;
3485
+ value?: RenderConditionValue[];
2997
3486
  else: ScreenConditionElse;
2998
3487
  elseValue: RenderConditionElseValue[];
2999
- };
3488
+ }
3000
3489
 
3001
- export declare type RenderConditionElseValue = {
3490
+ export declare interface RenderConditionElseValue {
3002
3491
  key: string;
3003
3492
  value: string;
3493
+ }
3494
+
3495
+ export declare interface RenderConditionValue {
3496
+ subscriptionRefs?: any[];
3497
+ }
3498
+
3499
+ /**
3500
+ * Make all attributes in given type required, non-nullable and defined.
3501
+ * e.g. will make `{ attribute?: string | null }` to be `{ attribute: string }`
3502
+ */
3503
+ export declare type RequiredNonNullable<T> = {
3504
+ [P in keyof T]-?: NonNullable<T[P]>;
3004
3505
  };
3005
3506
 
3006
3507
  /**
3007
3508
  * Makes optional attributes in given type to be required and nullable.
3008
- * e.g. will make `attribute?: string` to be `attribute: string | null`
3509
+ * e.g. will make `{ attribute?: string }` to be `{ attribute: string | null }`
3009
3510
  * @internal
3010
3511
  */
3011
3512
  export declare type RequiredNullable<T> = {
@@ -3016,29 +3517,51 @@ export declare type RequiredNullable<T> = {
3016
3517
  * @public
3017
3518
  */
3018
3519
  export declare interface RouterOverrides {
3019
- getVideoDetailPath: (videoIdOrUrlName: string) => string;
3020
- getSeriesDetailPath: (tagId: string) => string;
3520
+ getVideoDetailPath: (videoIdOrUrlName: string, item?: ItemInRow) => string;
3521
+ getSeriesDetailPath: (tagId: string, item?: ItemInRow) => string;
3021
3522
  getTagPath: (tagId: string) => string;
3022
3523
  getLoginPath: () => string;
3023
3524
  getRegistrationPath: () => string;
3024
3525
  getLivePlayerPath: (tvChannelId: string) => string;
3025
3526
  getVodPlayerPath: (videoIdOrUrlName: string) => string;
3026
3527
  getHomePath: (screens: ScreenConfig[]) => string;
3027
- goToVideoDetailPage: (videoIdOrUrlName: string) => void;
3528
+ getArticlePath: (articleId: string) => string;
3529
+ getApplicationPath: (applicationUrlHandle: string) => string;
3530
+ getGridPath: (options: {
3531
+ gridType: GRID_TYPES.SERIES;
3532
+ seriesTagId: string;
3533
+ season?: number;
3534
+ } | {
3535
+ gridType: GRID_TYPES.ROW;
3536
+ rowId: string;
3537
+ } | {
3538
+ gridType: GRID_TYPES.VIDEO;
3539
+ videoId: string;
3540
+ }) => string;
3541
+ goToVideoDetailPage: (videoIdOrUrlName: string, item?: ItemInRow) => void;
3028
3542
  goToSeriesDetailPage: (tagId: string) => void;
3029
3543
  goToTagPage: (tagId: string) => void;
3030
3544
  goToLoginPage: (options?: {
3031
3545
  manual?: boolean;
3032
3546
  origin?: LoginRedirect;
3547
+ email?: string;
3548
+ urlHandle?: string;
3549
+ replace?: boolean;
3033
3550
  }) => void;
3034
3551
  goToRegistrationPage: (options?: {
3035
3552
  origin?: RegistrationRedirect;
3553
+ email?: string;
3036
3554
  }) => void;
3037
3555
  goBack: () => void;
3038
3556
  goLivePlayer: (tvChannelId: string) => void;
3039
3557
  goVodPlayer: (videoIdOrUrlName: string) => void;
3040
3558
  goToHome: (user?: any, activeUserProfileId?: string) => void;
3041
3559
  goToRoute: (route: string) => void;
3560
+ goToArticle: (id: string, applicationUrlHandle?: string) => void;
3561
+ goToRecommendedFromOrganization: (screenId: string, organizationId: string) => void;
3562
+ goToRecommendedFromOrganizationRow: (screenId: string, rowId: string) => void;
3563
+ goToMagentaMomentsPage: (voucher?: string) => void;
3564
+ goToVoucherRedeemPage: () => void;
3042
3565
  }
3043
3566
 
3044
3567
  /**
@@ -3055,43 +3578,44 @@ export declare interface RouterOverridesContextState {
3055
3578
  /**
3056
3579
  * @public
3057
3580
  */
3058
- export declare type Row = RowStandard | RowBanner;
3581
+ export declare interface Row {
3582
+ id: string;
3583
+ rowId: string;
3584
+ name: string;
3585
+ description?: string;
3586
+ assets: AssetsField;
3587
+ type: ScreenRowType;
3588
+ isLiveRow: boolean;
3589
+ tiles: PaginationInterface<ItemInRow>;
3590
+ numberOfLines?: number;
3591
+ monetizations?: {
3592
+ monetizationRef: any;
3593
+ }[];
3594
+ rowComponent: RowComponent.ROW | RowComponent.BANNER;
3595
+ itemComponent: RowItemComponent | BannerItemComponent;
3596
+ organizationId?: string;
3597
+ }
3059
3598
 
3060
3599
  /**
3061
3600
  * @public
3062
3601
  */
3063
3602
  export declare enum ROW_ITEM_TYPES {
3603
+ APPLICATION = "APPLICATION",
3064
3604
  VIDEO = "VIDEO",
3065
3605
  TAG = "TAG",
3066
3606
  TV_CHANNEL = "TV_CHANNEL",
3067
- ADVERTISEMENT = "ADVERTISEMENT"
3607
+ ADVERTISEMENT = "ADVERTISEMENT",
3608
+ ARTICLE = "ARTICLE"
3068
3609
  }
3069
3610
 
3070
3611
  /**
3071
- * @private
3612
+ * @public
3072
3613
  */
3073
- export declare interface RowBanner extends RowBase {
3614
+ export declare interface RowBanner extends Row {
3074
3615
  rowComponent: RowComponent.BANNER;
3075
3616
  itemComponent: BannerItemComponent;
3076
3617
  }
3077
3618
 
3078
- /**
3079
- * @private
3080
- */
3081
- declare interface RowBase {
3082
- id: string;
3083
- rowId: string;
3084
- name: string;
3085
- description?: string;
3086
- assets: Assets;
3087
- type: ScreenRowType;
3088
- isLiveRow: boolean;
3089
- numberOfLines?: number;
3090
- monetizations?: {
3091
- monetizationRef: any;
3092
- }[];
3093
- }
3094
-
3095
3619
  /**
3096
3620
  * @public
3097
3621
  */
@@ -3100,13 +3624,14 @@ export declare enum RowComponent {
3100
3624
  BANNER = "BANNER"
3101
3625
  }
3102
3626
 
3103
- declare enum RowFilterCollection {
3627
+ export declare enum RowFilterCollection {
3104
3628
  VIDEOS = "videos",
3105
3629
  /**
3106
3630
  * This is not real collection path. Path always should be ${organizationId}/tags
3107
3631
  */
3108
3632
  TAGS = "tags",
3109
- TV_CHANNELS = "tvChannels"
3633
+ TV_CHANNELS = "tvChannels",
3634
+ CONTENTS = "contents"
3110
3635
  }
3111
3636
 
3112
3637
  /**
@@ -3116,19 +3641,66 @@ declare enum RowFilterCollection {
3116
3641
  export declare interface RowFilterField {
3117
3642
  collection: RowFilterCollection;
3118
3643
  limit?: number;
3119
- orderBy: {
3644
+ orderBy?: {
3120
3645
  fieldPath: RowOrderByFieldPath;
3121
- directionStr: OrderByDirection;
3646
+ directionStr?: OrderByDirection;
3122
3647
  };
3123
- where: RowFilterWhereField[];
3648
+ where?: RowFilterWhereField[];
3124
3649
  }
3125
3650
 
3126
- declare interface RowFilterWhereField {
3651
+ export declare interface RowFilterWhereField {
3127
3652
  fieldPath: RowWhereFilterFieldPath;
3128
3653
  opStr: WhereFilterOp;
3129
3654
  value: any;
3130
3655
  }
3131
3656
 
3657
+ export declare type RowInScreen = {
3658
+ /**
3659
+ * Firebase document path. If not provided, the row is not defined in db and is dynamically generated (e.g. recommendation row).
3660
+ */
3661
+ path?: string;
3662
+ /**
3663
+ * Tivio row ID.
3664
+ */
3665
+ rowId: string;
3666
+ /**
3667
+ * If all items are from the same organization this will be set.
3668
+ */
3669
+ organizationId?: string;
3670
+ /**
3671
+ * Row name.
3672
+ */
3673
+ name: Translation;
3674
+ /**
3675
+ * Row filter based on which to pick tiles.
3676
+ */
3677
+ filter?: RowFilterField;
3678
+ /**
3679
+ * Row order in the screen.
3680
+ */
3681
+ order?: number;
3682
+ /**
3683
+ * Number of lines of the title.
3684
+ */
3685
+ numberOfLines?: number;
3686
+ /**
3687
+ * Standard row or a Banner.
3688
+ */
3689
+ rowComponent: RowComponent;
3690
+ /**
3691
+ * Component to use to render the tiles in the row.
3692
+ */
3693
+ itemComponent: RowItemComponent | BannerItemComponent;
3694
+ /**
3695
+ * Type of the row (continue to watch, custom, filter, ...).
3696
+ */
3697
+ type: ScreenRowType;
3698
+ /**
3699
+ * Items to display in the row.
3700
+ */
3701
+ tiles: GetTilesInRowResponse;
3702
+ };
3703
+
3132
3704
  /**
3133
3705
  * @public
3134
3706
  */
@@ -3137,7 +3709,21 @@ export declare interface RowItem extends RowItemAssets {
3137
3709
  itemType: ROW_ITEM_TYPES;
3138
3710
  name?: string;
3139
3711
  description?: string;
3140
- assets: Assets | null;
3712
+ assets: AssetsField | null;
3713
+ application: RowItemApplicationData | null;
3714
+ feedVisible?: boolean;
3715
+ }
3716
+
3717
+ /**
3718
+ * @public
3719
+ */
3720
+ export declare interface RowItemApplicationData {
3721
+ name: string;
3722
+ logo?: string | null;
3723
+ logoLandscape?: string | null;
3724
+ profilePhoto?: string | null;
3725
+ urlHandle: string;
3726
+ organizationId?: string | null;
3141
3727
  }
3142
3728
 
3143
3729
  /**
@@ -3147,6 +3733,7 @@ export declare interface RowItemAssets {
3147
3733
  landscape?: string | null;
3148
3734
  portrait?: string | null;
3149
3735
  circled?: string | null;
3736
+ square?: string | null;
3150
3737
  banner?: string | null;
3151
3738
  bannerMobile?: string | null;
3152
3739
  }
@@ -3157,7 +3744,12 @@ export declare interface RowItemAssets {
3157
3744
  export declare enum RowItemComponent {
3158
3745
  ROW_ITEM_PORTRAIT = "ROW_ITEM_PORTRAIT",
3159
3746
  ROW_ITEM_LANDSCAPE = "ROW_ITEM_LANDSCAPE",
3160
- ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED"
3747
+ ROW_ITEM_SQUARE = "ROW_ITEM_SQUARE",
3748
+ ROW_ITEM_CREATORS_SQUARE = "ROW_ITEM_CREATORS_SQUARE",
3749
+ ROW_ITEM_CREATORS_LANDSCAPE = "ROW_ITEM_CREATORS_LANDSCAPE",
3750
+ ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED",
3751
+ ROW_ITEM_HIGHLIGHTED = "ROW_ITEM_HIGHLIGHTED",
3752
+ ROW_ITEM_PLAIN = "ROW_ITEM_PLAIN"
3161
3753
  }
3162
3754
 
3163
3755
  /**
@@ -3184,9 +3776,9 @@ export declare enum RowOrderByFieldPath {
3184
3776
  }
3185
3777
 
3186
3778
  /**
3187
- * @private
3779
+ * @public
3188
3780
  */
3189
- export declare interface RowStandard extends RowBase {
3781
+ export declare interface RowStandard extends Row {
3190
3782
  rowComponent: RowComponent.ROW;
3191
3783
  itemComponent: RowItemComponent;
3192
3784
  }
@@ -3197,7 +3789,10 @@ export declare enum RowWhereFilterFieldPath {
3197
3789
  TAG_TYPE_REF = "tagTypeRef",
3198
3790
  TYPE = "type",
3199
3791
  CONTENT_TYPE = "contentType",
3200
- CHANNEL_KEY = "channelKey"
3792
+ CHANNEL_KEY = "channelKey",
3793
+ PUBLISHED_STATUS = "publishedStatus",
3794
+ ORGANIZATION_REF = "organizationRef",
3795
+ TRANSCODING_STATUS = "transcodingStatus"
3201
3796
  }
3202
3797
 
3203
3798
  /**
@@ -3221,20 +3816,35 @@ declare interface Screen_2 {
3221
3816
  id: string;
3222
3817
  name: string | null;
3223
3818
  description?: string | null;
3224
- assets: Assets;
3225
- rows: Row[];
3819
+ assets: AssetsField;
3820
+ rows: PaginatedResponse<Row>;
3226
3821
  type?: ScreenType;
3227
3822
  filter?: RowFilterField | null;
3228
- embedUrl?: string | null;
3823
+ embedUrl?: string;
3824
+ screenId: string;
3825
+ renderConditions: RenderCondition[];
3826
+ getRenderCondition: (context: {
3827
+ purchasedSubscriptions: Purchase[];
3828
+ }) => RenderCondition | undefined;
3829
+ applyRenderCondition: (payload: ApplyScreenConditionPayload) => {
3830
+ isSignInRequired?: boolean;
3831
+ isPurchaseRequired?: boolean;
3832
+ embedUrl?: string;
3833
+ };
3834
+ fetchMoreRows: () => Promise<void>;
3835
+ hasNextPage: boolean;
3836
+ refetchIfNeeded: () => Promise<void>;
3229
3837
  }
3230
3838
  export { Screen_2 as Screen }
3231
3839
 
3232
3840
  export declare enum ScreenConditionElse {
3233
- SET_QUERY_PARAMS = "setQueryParams"
3841
+ SET_QUERY_PARAMS = "setQueryParams",
3842
+ SHOW_PURCHASE_MODAL = "showPurchaseModal"
3234
3843
  }
3235
3844
 
3236
3845
  export declare enum ScreenConditionType {
3237
- SUBSCRIBED = "subscribed"
3846
+ SUBSCRIBED = "subscribed",
3847
+ SIGNED_IN = "signedIn"
3238
3848
  }
3239
3849
 
3240
3850
  /**
@@ -3244,24 +3854,18 @@ export declare type ScreenConfig = {
3244
3854
  id: string;
3245
3855
  name: string;
3246
3856
  route?: string;
3857
+ isHiddenFromMenu?: boolean;
3247
3858
  showForUserProfileType?: {
3248
3859
  kids: boolean;
3249
3860
  adults: boolean;
3250
3861
  };
3862
+ monetizationAccessIds?: string[];
3251
3863
  };
3252
3864
 
3253
3865
  /**
3254
3866
  * @public
3255
3867
  */
3256
- export declare type ScreenOptions = Partial<{
3257
- language: LangCode;
3258
- initRows: boolean;
3259
- }> & DocumentOptions;
3260
-
3261
- /**
3262
- * @public
3263
- */
3264
- export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched';
3868
+ export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched' | 'applications';
3265
3869
 
3266
3870
  /**
3267
3871
  * Listen to screen data
@@ -3275,7 +3879,9 @@ export declare type ScreenSubscription = (screenId: string, cb: (error: Error |
3275
3879
  export declare enum ScreenType {
3276
3880
  DEFAULT = "default",
3277
3881
  GRID = "grid",
3278
- EMBED = "embed"
3882
+ EMBED = "embed",
3883
+ RECOMMENDATION = "recommendation",
3884
+ FEED = "feed"
3279
3885
  }
3280
3886
 
3281
3887
  /**
@@ -3316,6 +3922,12 @@ export declare enum SemanticDate {
3316
3922
  TOMORROW = "Tomorrow"
3317
3923
  }
3318
3924
 
3925
+ export declare interface SendFinalizeRegistrationEmailPayload {
3926
+ email: string;
3927
+ userId: string;
3928
+ authUserId: string;
3929
+ }
3930
+
3319
3931
  /**
3320
3932
  * Used for entities, that can be global (e.g. asset presets, tag types).
3321
3933
  * Non-global is stored under organizations (in sub-collection), and shown for organization's users and super-admin.
@@ -3341,6 +3953,15 @@ export declare const setUser: (userId: string | null, payload?: UserPayload) =>
3341
3953
  */
3342
3954
  export declare const showGdprConsentPreferences: () => Promise<void>;
3343
3955
 
3956
+ export declare enum SocialNetworks {
3957
+ FACEBOOK = 0,
3958
+ INSTAGRAM = 1,
3959
+ TWITTER = 2,
3960
+ LINKED_IN = 3,
3961
+ EMAIL = 4,
3962
+ YOUTUBE = 5
3963
+ }
3964
+
3344
3965
  /**
3345
3966
  * @public
3346
3967
  */
@@ -3426,13 +4047,18 @@ export declare type StartAndContinuePosition = {
3426
4047
  declare interface StorageManager_2 {
3427
4048
  getItem(key: string): string | null | Promise<string | null>;
3428
4049
  setItem(key: string, value: string): void | Promise<void>;
4050
+ removeItem(key: string): void | Promise<void>;
3429
4051
  }
3430
4052
  export { StorageManager_2 as StorageManager }
3431
4053
 
4054
+ export declare interface StoreBadgeConfig {
4055
+ appId: string;
4056
+ }
4057
+
3432
4058
  /**
3433
4059
  * @public
3434
4060
  */
3435
- export declare type SubscribeToItemsInRow = (rowId: string, cb: (error: Error | null, data: PaginationInterface<ItemsInRow> | null) => void, options?: SubscribeToItemsInRowOptions) => Disposer_2;
4061
+ export declare type SubscribeToItemsInRow = (rowId: string, cb: (error: Error | null, data: PaginationInterface<ItemInRow> | null) => void, options?: SubscribeToItemsInRowOptions) => Disposer_2;
3436
4062
 
3437
4063
  /**
3438
4064
  * @public
@@ -3448,11 +4074,6 @@ export declare type SubscribeToItemsInRowOptions = Partial<{
3448
4074
  */
3449
4075
  export declare type SubscribeToRowsInScreen = (screenId: string, cb: (error: Error | null, data: PaginationInterface<Row> | null) => void, options?: PaginationOptions) => Disposer_2;
3450
4076
 
3451
- /**
3452
- * @public
3453
- */
3454
- export declare type SubscribeToScreen = (screenId: string, cb: (error: Error | null, data: Screen_2 | null) => void, options?: ScreenOptions) => Disposer_2;
3455
-
3456
4077
  /**
3457
4078
  * @public
3458
4079
  */
@@ -3480,7 +4101,7 @@ export declare interface SuccessConfirmationOverlayPayload extends ConfirmationO
3480
4101
  confirmButtonText?: string;
3481
4102
  }
3482
4103
 
3483
- export declare type SynchronizeUserTypeFunction = (payload: CreateUserPayload, tenantId: string, tenantUserId: string) => Promise<string>;
4104
+ export declare type SynchronizeUserTypeFunction = (payload: CreateUserPayload, tenantId: string, tenantUserId: string, organizationId?: string) => Promise<string>;
3484
4105
 
3485
4106
  /**
3486
4107
  * @public
@@ -3490,7 +4111,7 @@ export declare interface Tag extends RowItem {
3490
4111
  itemType: ROW_ITEM_TYPES.TAG;
3491
4112
  tagId: string;
3492
4113
  type?: string | null;
3493
- metadata?: any[];
4114
+ metadata?: TagMetadataField[];
3494
4115
  color?: string;
3495
4116
  detailBanner?: string;
3496
4117
  availableSeasons?: AvailableSeason[];
@@ -3498,6 +4119,17 @@ export declare interface Tag extends RowItem {
3498
4119
  addToFavorites: () => void;
3499
4120
  removeFromFavorites: () => void;
3500
4121
  cover: string;
4122
+ getApplicationName: () => string | undefined;
4123
+ }
4124
+
4125
+ export declare interface TagAvailableSeasonsFieldType extends TagMetadataFieldDefinition {
4126
+ type: TagMetadataFieldType.AVAILABLE_SEASONS;
4127
+ value: AvailableSeasonField[];
4128
+ }
4129
+
4130
+ export declare interface TagBooleanFieldType extends TagMetadataFieldDefinition {
4131
+ type: TagMetadataFieldType.BOOLEAN;
4132
+ value: boolean;
3501
4133
  }
3502
4134
 
3503
4135
  /**
@@ -3505,6 +4137,61 @@ export declare interface Tag extends RowItem {
3505
4137
  */
3506
4138
  export declare type TaggedVideosOrderByField = 'seasonNumber' | 'episodeNumber' | 'contentType' | DefaultOrderByField;
3507
4139
 
4140
+ export declare type TagMetadataField = TagStringFieldType | TagNumberFieldType | TagBooleanFieldType | TagTranslationFieldType | TagAvailableSeasonsFieldType | TagOrganizationRefFieldType;
4141
+
4142
+ export declare interface TagMetadataFieldDefinition {
4143
+ key: string;
4144
+ type: TagMetadataFieldType;
4145
+ }
4146
+
4147
+ export declare enum TagMetadataFieldType {
4148
+ STRING = "STRING",
4149
+ TRANSLATION = "TRANSLATION",
4150
+ NUMBER = "NUMBER",
4151
+ BOOLEAN = "BOOLEAN",
4152
+ AVAILABLE_SEASONS = "AVAILABLE_SEASONS",
4153
+ ORGANIZATION_REF = "ORGANIZATION_REF"
4154
+ }
4155
+
4156
+ export declare interface TagNumberFieldType extends TagMetadataFieldDefinition {
4157
+ type: TagMetadataFieldType.NUMBER;
4158
+ value: number;
4159
+ }
4160
+
4161
+ export declare interface TagOrganizationRefFieldType extends TagMetadataFieldDefinition {
4162
+ type: TagMetadataFieldType.ORGANIZATION_REF;
4163
+ value: DocumentReference<any>;
4164
+ }
4165
+
4166
+ export declare enum TagSimplicityType {
4167
+ /**
4168
+ * Simple tags
4169
+ */
4170
+ SIMPLE = "SIMPLE",
4171
+ /**
4172
+ * Composed of simple tags. Used for filtering by tagA AND tagB by using one composed tag tagA__tagB
4173
+ */
4174
+ COMPOSED = "COMPOSED"
4175
+ }
4176
+
4177
+ export declare interface TagStringFieldType extends TagMetadataFieldDefinition {
4178
+ type: TagMetadataFieldType.STRING;
4179
+ value: string;
4180
+ }
4181
+
4182
+ export declare interface TagTileSpecificData {
4183
+ assets?: AssetsField;
4184
+ tagId: string;
4185
+ metadata: TagMetadataField[];
4186
+ simplicity: TagSimplicityType;
4187
+ tagTypePath?: string;
4188
+ }
4189
+
4190
+ export declare interface TagTranslationFieldType extends TagMetadataFieldDefinition {
4191
+ type: TagMetadataFieldType.TRANSLATION;
4192
+ value: Translation;
4193
+ }
4194
+
3508
4195
  export declare type Tier = {
3509
4196
  attributes: {
3510
4197
  amount_cents: number;
@@ -3523,15 +4210,48 @@ export declare interface TileApplicationData {
3523
4210
  name: Translation;
3524
4211
  description?: string;
3525
4212
  logo: string;
4213
+ organizationBanner?: string;
3526
4214
  urlHandle: string;
3527
4215
  organizationId: string;
3528
4216
  type: ApplicationType;
4217
+ profilePhoto?: string;
4218
+ }
4219
+
4220
+ export declare interface TileData<ItemSpecificData = VideoTileSpecificData | TvChannelTileSpecificData | TagTileSpecificData | ArticleTileSpecificData> {
4221
+ /**
4222
+ * Tile item ID.
4223
+ */
4224
+ id: string;
4225
+ /**
4226
+ * Timestamp of the item creation.
4227
+ */
4228
+ created: number;
4229
+ /**
4230
+ * Type of the tile. VIDEO, TV_CHANNEL, TAG, ...
4231
+ */
4232
+ itemType: ROW_ITEM_TYPES;
4233
+ /**
4234
+ * Tile item name translation.
4235
+ */
4236
+ name: Translation;
4237
+ /**
4238
+ * Firestore path to the item.
4239
+ */
4240
+ path: string;
4241
+ /**
4242
+ * Application info including logo, name and number of videos.
4243
+ */
4244
+ application?: TileApplicationData;
4245
+ /**
4246
+ * Specific data for an item type (e.g. video, tv channel, tag, ...).
4247
+ */
4248
+ itemSpecificData: ItemSpecificData;
3529
4249
  }
3530
4250
 
3531
4251
  /**
3532
4252
  * @internal
3533
4253
  */
3534
- export declare type TileOptions = {
4254
+ export declare interface TileOptions {
3535
4255
  focusedShadowColor?: string;
3536
4256
  borderColor: string;
3537
4257
  /**
@@ -3540,6 +4260,14 @@ export declare type TileOptions = {
3540
4260
  borderRadius: string | number;
3541
4261
  innerContainer: {
3542
4262
  margin: string;
4263
+ /**
4264
+ * Position at which the video price and (or) duration is shown.
4265
+ */
4266
+ badgesContainerPlacement?: 'top' | 'bottom';
4267
+ /**
4268
+ * Bold variant uses bold font weight, uppercase text transform and custom padding.
4269
+ */
4270
+ durationVariant?: 'normal' | 'bold';
3543
4271
  };
3544
4272
  innerLabel: {
3545
4273
  /**
@@ -3565,16 +4293,18 @@ export declare type TileOptions = {
3565
4293
  fontSize: number;
3566
4294
  };
3567
4295
  color?: string;
3568
- };
4296
+ fullWidthProgress?: boolean;
4297
+ }
3569
4298
 
3570
4299
  /**
3571
4300
  * @public
3572
4301
  */
3573
- export declare type TileProps = {
4302
+ export declare interface TileProps {
3574
4303
  children?: React_2.ReactNode;
3575
- cover: string;
4304
+ cover?: string;
3576
4305
  bottomLabel: string;
3577
4306
  bottomLabelAreaHeight: number;
4307
+ bottomComponent?: React_2.ReactNode;
3578
4308
  innerLabel: string;
3579
4309
  duration: string;
3580
4310
  price: string | null;
@@ -3587,7 +4317,9 @@ export declare type TileProps = {
3587
4317
  progress?: number;
3588
4318
  time?: string;
3589
4319
  logo?: string;
4320
+ bigLogo?: string;
3590
4321
  coverHeight: number;
4322
+ aspectRatio?: number;
3591
4323
  /**
3592
4324
  * Margin of inner TileContainer.
3593
4325
  * Now used for backward compatibility for WebTileGrid. Consider to use it other way.
@@ -3595,7 +4327,12 @@ export declare type TileProps = {
3595
4327
  containerMargin?: number | string;
3596
4328
  created?: Date;
3597
4329
  numberOfLines?: number;
3598
- };
4330
+ applicationName?: string;
4331
+ applicationLogo?: string;
4332
+ hasBranding?: boolean;
4333
+ applicationHandle?: string;
4334
+ fullWidth?: boolean;
4335
+ }
3599
4336
 
3600
4337
  /**
3601
4338
  * @public
@@ -3605,7 +4342,7 @@ export declare type TilePropsPartial = Partial<TileProps>;
3605
4342
  /**
3606
4343
  * @internal
3607
4344
  */
3608
- export declare type TileSizes = {
4345
+ export declare interface TileSizes {
3609
4346
  coverPaddingTop: number;
3610
4347
  coverPaddingBottom: number;
3611
4348
  coverWidth: number;
@@ -3616,7 +4353,7 @@ export declare type TileSizes = {
3616
4353
  * Now only bottom label supports multiline text.
3617
4354
  */
3618
4355
  labelLinesCount: number;
3619
- };
4356
+ }
3620
4357
 
3621
4358
  /**
3622
4359
  * Tile sizes by Tile variant (row item component)
@@ -3679,7 +4416,7 @@ export declare type TivioBundleFile = {
3679
4416
  /**
3680
4417
  * @public
3681
4418
  */
3682
- export declare type TivioComponents = {
4419
+ export declare interface TivioComponents {
3683
4420
  Markers: React_2.ComponentType<MarkersProps>;
3684
4421
  PlayerDataContext: React_2.Context<{
3685
4422
  player: any | null;
@@ -3701,6 +4438,7 @@ export declare type TivioComponents = {
3701
4438
  FeatureSupportCheck: React_2.ComponentType;
3702
4439
  CustomerScreen: React_2.ComponentType<{
3703
4440
  screenId: string;
4441
+ screen: Screen_2;
3704
4442
  }>;
3705
4443
  WebTagScreen: React_2.ComponentType<{
3706
4444
  tagId: string;
@@ -3712,11 +4450,13 @@ export declare type TivioComponents = {
3712
4450
  }>;
3713
4451
  WebRow: React_2.ComponentType<WebRowProps>;
3714
4452
  WebTile: React_2.ComponentType<{
3715
- item?: ItemsInRow;
4453
+ item?: ItemInRow;
3716
4454
  } & TilePropsPartial>;
3717
4455
  ChannelContext: React_2.Context<TvChannel | undefined>;
3718
4456
  ContentSortPicker: React_2.ComponentType<ContentSortPickerProps>;
3719
- };
4457
+ WebProfileScreen: React_2.ComponentType<WebProfileScreenProps>;
4458
+ WebTivioProVideoScreen: React_2.ComponentType<WebTivioProVideoScreenProps>;
4459
+ }
3720
4460
 
3721
4461
  /**
3722
4462
  * @public
@@ -3743,10 +4483,13 @@ export declare interface TivioConfig {
3743
4483
  debug?: boolean;
3744
4484
  verbose?: boolean;
3745
4485
  firebaseApp?: any | null;
4486
+ firebaseFactory?: (config: Object, appName?: string) => firebase.FirebaseApp;
4487
+ authDomainOverride?: string;
3746
4488
  firestore?: any | null;
3747
4489
  currency: Currency;
3748
4490
  applicationId?: string;
3749
4491
  isTivioProApp?: boolean;
4492
+ lockApplicationHandle?: string;
3750
4493
  /**
3751
4494
  * Configuration for GDPR consent collection (CMP)
3752
4495
  */
@@ -3807,7 +4550,7 @@ export declare type TivioHooks = {
3807
4550
  useAdSegment: () => AdSegment_2 | null;
3808
4551
  useCancelSubscription: UseCancelSubscription;
3809
4552
  useItemsInRow: (rowId?: string, options?: PaginationOptions) => {
3810
- pagination: PaginationInterface<ItemsInRow> | null;
4553
+ pagination: PaginationInterface<ItemInRow> | null;
3811
4554
  error: Error | null;
3812
4555
  };
3813
4556
  usePurchaseRecovery: () => {
@@ -3872,6 +4615,7 @@ export declare type TivioInternalComponents = {
3872
4615
  onClose: (selectedProfileId: string) => void;
3873
4616
  }>;
3874
4617
  Banner: React_2.ComponentType<BannerPropsPartial>;
4618
+ CustomAppHistoryContext: React_2.Context<HistoryContextData | undefined>;
3875
4619
  };
3876
4620
 
3877
4621
  /**
@@ -3888,7 +4632,7 @@ export declare type TivioInternalHooks = {
3888
4632
  pagination: PaginationInterface<Video> | null;
3889
4633
  error: Error | null;
3890
4634
  };
3891
- useSimilars: () => {
4635
+ useSimilars: (shouldLoadApplicationsOfOrganizations?: boolean) => {
3892
4636
  getSimilars: ({ videoId, similarsQuery }: {
3893
4637
  videoId: string;
3894
4638
  similarsQuery?: RecommendationsQuery | undefined;
@@ -3902,9 +4646,12 @@ export declare type TivioInternalHooks = {
3902
4646
  useCurrentApplication: () => {
3903
4647
  screenConfigs: ScreenConfig[] | undefined;
3904
4648
  isLoading: boolean;
3905
- switchApplicationByHandle: (handle?: string) => (Promise<void> | undefined);
3906
4649
  isDefaultOrganization: boolean;
3907
4650
  };
4651
+ useDefaultApplication: () => {
4652
+ isLoading: boolean;
4653
+ screenConfigs: ScreenConfig[] | undefined;
4654
+ };
3908
4655
  useIsMonetizationPurchased: () => {
3909
4656
  isOneOfSubscriptionPurchased: (subscriptionIds: string[]) => boolean;
3910
4657
  };
@@ -3929,6 +4676,7 @@ export declare type TivioInternalHooks = {
3929
4676
  useOrganization: () => Organization | null;
3930
4677
  useRow: UseRow;
3931
4678
  useScreen: (screenId: string | null) => Screen_2 | null;
4679
+ useCustomAppHistory: () => HistoryContextData;
3932
4680
  };
3933
4681
 
3934
4682
  /**
@@ -4217,9 +4965,9 @@ export declare type TriggerType = 'scheduled' | 'manual';
4217
4965
  /**
4218
4966
  * @public
4219
4967
  */
4220
- export declare type TvAppProps = {
4968
+ export declare interface TvAppProps {
4221
4969
  customer: CustomerId;
4222
- };
4970
+ }
4223
4971
 
4224
4972
  /**
4225
4973
  * @public
@@ -4253,6 +5001,19 @@ export declare interface TvChannel extends RowItem {
4253
5001
  type?: TvChannelType;
4254
5002
  }
4255
5003
 
5004
+ export declare interface TvChannelAssetValue extends ScalableAsset {
5005
+ pendingOverlayWidth: string;
5006
+ }
5007
+
5008
+ export declare interface TvChannelTileSpecificData {
5009
+ type: TvChannelType;
5010
+ channelKey: string;
5011
+ filters: string[];
5012
+ sources: VideoSourceField[];
5013
+ organizationId: string;
5014
+ assets?: AssetsField<TvChannelAssetValue>;
5015
+ }
5016
+
4256
5017
  export declare enum TvChannelType {
4257
5018
  /**
4258
5019
  * Classic live tv channel
@@ -4322,6 +5083,8 @@ export declare enum TvStreamType {
4322
5083
  */
4323
5084
  export declare const TvTivioProvider: React_2.FC<TivioProviderProps>;
4324
5085
 
5086
+ export declare type UpsertCommentResponse = AddEditCommentResponse | DeleteCommentResponse;
5087
+
4325
5088
  /**
4326
5089
  * @public
4327
5090
  */
@@ -4406,6 +5169,41 @@ export declare const useChannelSource: (tvChannelId: string) => {
4406
5169
  source: null;
4407
5170
  };
4408
5171
 
5172
+ /**
5173
+ * @public
5174
+ */
5175
+ export declare type UseComments = (options: UseCommentsOptions) => {
5176
+ pagination: PaginationInterface<Comment_2>;
5177
+ addComment: (options: AddCommentOptions) => Promise<UseCommentsAddEditCommentResponse>;
5178
+ editComment: (options: EditCommentOptions) => Promise<UseCommentsAddEditCommentResponse>;
5179
+ deleteComment: (commentId: string) => Promise<UseCommentsDeleteCommentResponse>;
5180
+ };
5181
+
5182
+ /**
5183
+ * @public
5184
+ */
5185
+ export declare interface UseCommentsAddEditCommentResponse {
5186
+ id?: string;
5187
+ error?: string;
5188
+ }
5189
+
5190
+ /**
5191
+ * @public
5192
+ */
5193
+ export declare interface UseCommentsDeleteCommentResponse {
5194
+ deleted?: boolean;
5195
+ error?: string;
5196
+ }
5197
+
5198
+ /**
5199
+ * @public
5200
+ */
5201
+ export declare interface UseCommentsOptions {
5202
+ videoId: string;
5203
+ mainParentId?: string;
5204
+ autoInit?: boolean;
5205
+ }
5206
+
4409
5207
  /**
4410
5208
  * @public
4411
5209
  */
@@ -4468,7 +5266,7 @@ export declare const useIsMonetizationPurchased: () => {
4468
5266
  * @public
4469
5267
  */
4470
5268
  export declare const useItemsInRow: (rowId?: string, options?: SubscribeToItemsInRowOptions) => {
4471
- pagination: PaginationInterface<ItemsInRow> | null;
5269
+ pagination: PaginationInterface<ItemInRow> | null;
4472
5270
  error: Error | null;
4473
5271
  };
4474
5272
 
@@ -4528,6 +5326,7 @@ export declare type User = {
4528
5326
  * Returns all PAID or CANCELLED user purchases (expired and non-expired)
4529
5327
  */
4530
5328
  allPurchases: Purchase[];
5329
+ availablePromotionsIds: string[];
4531
5330
  /**
4532
5331
  * Returns "active" (not CANCELLED) VoD purchases ("transaction" type)
4533
5332
  */
@@ -4541,6 +5340,7 @@ export declare type User = {
4541
5340
  */
4542
5341
  extendableSubscription?: Purchase;
4543
5342
  getPurchasedVideos: () => Video[];
5343
+ getOneTimePurchases: () => Purchase[];
4544
5344
  isPurchasesInitialized: boolean;
4545
5345
  isSignedIn: boolean;
4546
5346
  isReady: boolean;
@@ -4554,14 +5354,41 @@ export declare type User = {
4554
5354
  authUserId?: string;
4555
5355
  favorites: any[];
4556
5356
  watchedPositions: any[];
5357
+ watchHistory: any[];
4557
5358
  profiles: any[];
4558
5359
  activeUserProfileId: string | null;
4559
5360
  patreon?: PatreonUserAuth;
5361
+ subscriptionIdsToShow: string[] | null;
5362
+ followedOrganizationIds: string[];
5363
+ isAnonymous: boolean;
5364
+ isDiscordConnected: boolean;
4560
5365
  createUserProfile: (request: any) => Promise<void>;
4561
5366
  deleteUserProfile: (profileId: string) => Promise<void>;
4562
5367
  setActiveUserProfileId: (id: string) => void;
5368
+ getFollowedOrganizations: () => Promise<Array<FollowedOrganizationData | undefined>>;
5369
+ sendFinalizeRegistrationEmail: (email: string) => Promise<void>;
5370
+ isUserAlreadyRegisteredByTenant: (email: string, tenantId: string) => Promise<boolean>;
5371
+ };
5372
+
5373
+ /**
5374
+ * @public
5375
+ */
5376
+ export declare type UseReactions = (options: UseReactionsOptions) => {
5377
+ react: () => void;
5378
+ count: number;
5379
+ hasReacted: boolean;
4563
5380
  };
4564
5381
 
5382
+ /**
5383
+ * @public
5384
+ */
5385
+ export declare interface UseReactionsOptions {
5386
+ content: ReactableContent;
5387
+ reactionType: ReactionEnum;
5388
+ onUnauthorized?: () => void;
5389
+ onError?: (error: Error) => void;
5390
+ }
5391
+
4565
5392
  export declare enum UserGroup {
4566
5393
  ALL = "all",
4567
5394
  FREE = "free",
@@ -4718,7 +5545,7 @@ export declare const useVoucher: (voucherId: string) => {
4718
5545
  voucher: Voucher | null;
4719
5546
  /**
4720
5547
  * You can check error.details if you need to know error type when you want your own error messages
4721
- * (can be one of "DOES_NOT_EXIST", "EXPIRED" and "ALREADY_USED").
5548
+ * (can be one of "DOES_NOT_EXIST", "EXPIRED", "ALREADY_USED_BY_CURRENT_USER" and "ALREADY_USED").
4722
5549
  */
4723
5550
  error: Error | BadRequestError | null;
4724
5551
  /**
@@ -4782,7 +5609,7 @@ export declare interface verifyCustomTokenProps {
4782
5609
  /**
4783
5610
  * @public
4784
5611
  */
4785
- export declare interface Video extends RowItem {
5612
+ export declare interface Video extends RowItem, MonetizableItem, ReactableContent {
4786
5613
  id: string;
4787
5614
  itemType: ROW_ITEM_TYPES.VIDEO;
4788
5615
  /**
@@ -4791,35 +5618,31 @@ export declare interface Video extends RowItem {
4791
5618
  cover: string | null;
4792
5619
  sectionId: string | null;
4793
5620
  channelId: string | null;
4794
- /**
4795
- * seconds
4796
- */
4797
5621
  duration: number;
4798
5622
  path: string;
4799
5623
  tags: Tag[];
4800
5624
  image: string | null;
4801
5625
  isPlayable: boolean;
4802
5626
  monetizations: Monetization[];
4803
- /**
4804
- * Returns all transactions and subscriptions applied to this video.
4805
- * Transactions before subscriptions, sorted by price ascending.
4806
- */
4807
- getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
4808
5627
  getSourceUrl(options?: {
4809
5628
  language?: LangCode;
4810
5629
  }): Promise<GetSourceUrlResponse & {
4811
5630
  language?: LangCode;
4812
5631
  }>;
4813
- getSeekingMatrixPreviewByTime(timeMs: number, offsetIndex: number): {
5632
+ getSeekingMatrixPreviewByTime(timeMs: number, offsetIndex?: number): {
4814
5633
  url: string;
4815
5634
  x: number;
4816
5635
  y: number;
5636
+ width: number;
5637
+ height: number;
5638
+ interval: number;
4817
5639
  timeMs: number;
4818
5640
  } | null;
4819
5641
  purchasableMonetization: any | null;
4820
5642
  transaction: PurchasableMonetization | undefined;
4821
5643
  subscriptions: PurchasableMonetization[];
4822
5644
  sources?: any[];
5645
+ allSources?: any[];
4823
5646
  isPlaylist: boolean;
4824
5647
  name: string;
4825
5648
  urlNames?: string[];
@@ -4831,34 +5654,38 @@ export declare interface Video extends RowItem {
4831
5654
  from?: Date;
4832
5655
  to?: Date;
4833
5656
  detailBanner?: string;
4834
- linkedVideosRaw: any[];
4835
- linkedVideos: LinkedVideo[];
5657
+ descriptionRich?: string;
5658
+ organizationId?: string;
5659
+ linkedVideosRaw: LinkedVideoRaw[] | undefined;
5660
+ linkedVideos: LinkedVideo[] | undefined;
5661
+ pipPaths?: string[];
4836
5662
  contentType: VideoContentType | null;
4837
5663
  year?: number;
4838
5664
  episodeNumber?: number;
4839
5665
  seasonNumber?: number;
4840
5666
  getTagsOfType: (type: string) => Tag[];
5667
+ geoBlocking: GeoBlocking | undefined;
4841
5668
  loadLinkedVideos: () => any;
4842
5669
  getLinkedVideos: (type: any) => any;
4843
5670
  trailer: Video | null;
5671
+ teaser: Video | null;
5672
+ hasTasting: boolean;
5673
+ isTastingValid: () => boolean;
5674
+ tasting: Video | null;
4844
5675
  watchPosition: number | null;
4845
5676
  isFavorite: boolean;
4846
5677
  addToFavorites: () => void;
4847
5678
  removeFromFavorites: () => void;
4848
- availability: VideoAvailability | null;
5679
+ availability: ContentAvailability | null;
4849
5680
  sourceLanguages: LangCode[];
4850
5681
  urlByLanguage: (lang: LangCode) => string | undefined;
5682
+ getApplicationName: () => string | undefined;
5683
+ getApplicationLogo: () => string | undefined;
5684
+ setApplicationData: (applicationData: RowItemApplicationData) => void;
5685
+ linkedVideosInNotLoaded: () => boolean | undefined;
5686
+ initApplication: () => Promise<void>;
4851
5687
  }
4852
5688
 
4853
- /**
4854
- * @public
4855
- */
4856
- export declare type VideoAvailability = {
4857
- from: Date;
4858
- to: Date | null;
4859
- manual: boolean;
4860
- };
4861
-
4862
5689
  /**
4863
5690
  * @public
4864
5691
  */
@@ -4892,6 +5719,25 @@ export declare enum VideoSourceEncryption {
4892
5719
  PLAYREADY = "playready"
4893
5720
  }
4894
5721
 
5722
+ export declare interface VideoSourceField {
5723
+ codec: VideoSourceCodec;
5724
+ /**
5725
+ * DRM provider for given encrypted source.
5726
+ *
5727
+ * If encryption is {@link VideoSourceEncryption.NONE}, DRM provider should not be set.
5728
+ * If encryption is set to anything other than {@link VideoSourceEncryption.NONE} and DRM provider is not set, we pick the default one.
5729
+ */
5730
+ drmProvider?: DrmProvider;
5731
+ encryption: VideoSourceEncryption;
5732
+ /**
5733
+ * Lower number = higher priority (so 1 equals highest priority)
5734
+ */
5735
+ priority: VideoSourcePriority;
5736
+ protocol: VideoSourceProtocol;
5737
+ url: string;
5738
+ languages?: LangCode[];
5739
+ }
5740
+
4895
5741
  /**
4896
5742
  * Lower number = higher priority.
4897
5743
  */
@@ -4903,6 +5749,37 @@ export declare enum VideoSourceProtocol {
4903
5749
  MP4 = "mp4"
4904
5750
  }
4905
5751
 
5752
+ export declare interface VideoTileSpecificData {
5753
+ cover?: string;
5754
+ assets?: AssetsField;
5755
+ episodeNumber?: number;
5756
+ seasonNumber?: number;
5757
+ urlName?: VideoUrlNames;
5758
+ }
5759
+
5760
+ /**
5761
+ * Transcoding status of uploaded video.
5762
+ * @public
5763
+ */
5764
+ export declare enum VideoTranscodingStatus {
5765
+ /**
5766
+ * Video is not transcoded yet. It's in the queue, though.
5767
+ */
5768
+ ON_HOLD = "CREATED",
5769
+ /**
5770
+ * Video is being transcoded.
5771
+ */
5772
+ IN_PROGRESS = "ENCODING",
5773
+ /**
5774
+ * Video has been transcoded.
5775
+ */
5776
+ DONE = "ENCODING_DONE",
5777
+ /**
5778
+ * An error occured during transcoding.
5779
+ */
5780
+ ERROR = "ERROR"
5781
+ }
5782
+
4906
5783
  /**
4907
5784
  * Video type.
4908
5785
  * @public
@@ -4924,11 +5801,20 @@ export declare enum VideoType {
4924
5801
  * Part of video original video like TRAILER.
4925
5802
  */
4926
5803
  TRAILER = "TRAILER",
5804
+ /**
5805
+ * Timeshift.
5806
+ */
4927
5807
  TV_PROGRAM = "TV_PROGRAM",
4928
5808
  /**
4929
5809
  * Video object represents whole series, e.g. tv show.
4930
5810
  */
4931
- SERIES = "SERIES"
5811
+ SERIES = "SERIES",
5812
+ TEASER = "TEASER",
5813
+ TASTING = "TASTING",
5814
+ /**
5815
+ * Video that is in locked state and is used in virtual channel EPG.
5816
+ */
5817
+ VIRTUAL_PROGRAM = "VIRTUAL_PROGRAM"
4932
5818
  }
4933
5819
 
4934
5820
  /**
@@ -5017,7 +5903,7 @@ export declare interface VodTivioSourceInterface extends PlayerSourceInterface<S
5017
5903
  watermark: Watermark | null;
5018
5904
  canWatchOnDevice: boolean;
5019
5905
  isAvailable: boolean;
5020
- availability: VideoAvailability | null;
5906
+ availability: ContentAvailability | null;
5021
5907
  video: Video;
5022
5908
  clone: (params?: Partial<VodTivioSourceParams>) => VodTivioSourceInterface;
5023
5909
  }
@@ -5030,6 +5916,7 @@ export declare interface VodTivioSourceParams extends PlayerSourceParams<SourceT
5030
5916
  adMonetizationId?: string;
5031
5917
  language?: LangCode;
5032
5918
  drm?: Drm;
5919
+ ignoreWatchPosition?: boolean;
5033
5920
  }
5034
5921
 
5035
5922
  /**
@@ -5050,6 +5937,7 @@ export declare interface WarningConfirmationOverlayPayload extends ConfirmationO
5050
5937
  type: 'warning';
5051
5938
  confirmButtonText?: string;
5052
5939
  closeButtonText?: string;
5940
+ subscriptionExpirationText?: string;
5053
5941
  }
5054
5942
 
5055
5943
  /**
@@ -5060,16 +5948,216 @@ export declare interface Watermark {
5060
5948
  size: 'large' | 'medium';
5061
5949
  }
5062
5950
 
5951
+ export declare interface WebConfig {
5952
+ customer: CustomerId;
5953
+ title?: string;
5954
+ description?: string;
5955
+ logo: string;
5956
+ mobileLogo?: string;
5957
+ /**
5958
+ * Logo for loading overlay, if not present, logo is used.
5959
+ */
5960
+ logoLoadingOverlay?: string;
5961
+ tivio: WebTivioConfig;
5962
+ appColorMode?: 'light' | 'dark';
5963
+ header?: {
5964
+ /**
5965
+ * Text on buy voucher button, if not provided the default text will be used.
5966
+ */
5967
+ buyVoucherButtonText?: string;
5968
+ allowSearch?: boolean;
5969
+ logoHeight?: string;
5970
+ mobileLogoHeight?: string;
5971
+ buySubscriptionButtonText?: string;
5972
+ };
5973
+ footer?: {
5974
+ /**
5975
+ * If logo is different from logo in header
5976
+ */
5977
+ logo?: string;
5978
+ showLogo?: boolean;
5979
+ /**
5980
+ * right panel - various type of contacts to owners of website
5981
+ */
5982
+ contacts?: {
5983
+ name: string;
5984
+ contact: string;
5985
+ }[];
5986
+ /**
5987
+ * right panel - important documents for viewer of website that should know about it
5988
+ */
5989
+ documents?: {
5990
+ name: string;
5991
+ href: string;
5992
+ }[];
5993
+ /**
5994
+ * right panel - hyperlinks to social networks
5995
+ */
5996
+ socialNetworks?: {
5997
+ type: SocialNetworks;
5998
+ url: string;
5999
+ }[];
6000
+ /**
6001
+ * right panel - some short common description of website
6002
+ */
6003
+ description?: string;
6004
+ /**
6005
+ * left panel - hyperlinks to stores for downloading native app
6006
+ * if our client has some native app
6007
+ */
6008
+ storeBadges?: {
6009
+ ios?: StoreBadgeConfig;
6010
+ android?: StoreBadgeConfig;
6011
+ };
6012
+ isCentered?: boolean;
6013
+ legalInfo?: {
6014
+ name?: string;
6015
+ address?: string;
6016
+ cin?: string;
6017
+ email?: string;
6018
+ };
6019
+ cookieSettingsLabel?: string;
6020
+ };
6021
+ theme?: {
6022
+ headerType?: PaletteType;
6023
+ };
6024
+ screens?: ScreenConfig[];
6025
+ /**
6026
+ * If content is secured, then landing page is shown to hide content (customer screens, videos etc.),
6027
+ * so app requires authorization to see them.
6028
+ */
6029
+ securedContent?: boolean;
6030
+ /**
6031
+ * CSS styles for application background.
6032
+ */
6033
+ appBackground?: string;
6034
+ /**
6035
+ * CSS styles for application color.
6036
+ */
6037
+ appColor?: string;
6038
+ loader?: {
6039
+ /**
6040
+ * URL to animated image shown on splash screen.
6041
+ */
6042
+ animatedLogo?: string;
6043
+ /**
6044
+ * Defines if progress bar should be shown on loading screen.
6045
+ * Default is TRUE (see {@link AppLoadingOverlay}
6046
+ */
6047
+ showProgressBar?: boolean;
6048
+ };
6049
+ /**
6050
+ * Slug of all pages where user will be forced to fill login form if he's not logged in.
6051
+ */
6052
+ forceLogin?: string[];
6053
+ /**
6054
+ * Hides registration button from the menu and from the login form. Direct access to /registration URL will still work.
6055
+ *
6056
+ * Useful when customer is going to quit a business or leaves Tivio platform - so he doesn't want to allow
6057
+ * a creation of new users anymore.
6058
+ */
6059
+ hideRegistrationButton?: boolean;
6060
+ /**
6061
+ * Hides registration button from the login form.
6062
+ */
6063
+ allowRegistrationFromLoginForm?: boolean;
6064
+ /**
6065
+ * Customization of auth process
6066
+ */
6067
+ /**
6068
+ * When enabled choose subscription button will be shown in the header. After choosing a subscription user will be
6069
+ * redirected to registration form.
6070
+ *
6071
+ * This will also hide registration button from the header
6072
+ */
6073
+ showChooseSubscription?: boolean;
6074
+ registration?: {
6075
+ /**
6076
+ * Customization of auth form
6077
+ */
6078
+ form?: {
6079
+ subtitle?: string;
6080
+ /**
6081
+ * Optional phoneNumber form field
6082
+ */
6083
+ showPhoneNumberField?: boolean;
6084
+ /**
6085
+ * Optional bottomText (e.g. terms & conditions agreement)
6086
+ */
6087
+ bottomText?: string;
6088
+ /**
6089
+ * Toggle for showing acceptance of terms & conditions text
6090
+ */
6091
+ showAcceptanceOfTermsAndConditions?: boolean;
6092
+ };
6093
+ registrationConsent?: string;
6094
+ };
6095
+ payment?: {
6096
+ paymentConsent?: string;
6097
+ };
6098
+ /**
6099
+ * If web supports entering vouchers
6100
+ */
6101
+ supportVouchers?: boolean;
6102
+ /**
6103
+ * Config for Google Tag Manager
6104
+ */
6105
+ googleTagManagerConfig?: TagManagerArgs;
6106
+ customScripts?: CustomScript[];
6107
+ /**
6108
+ * Favicons config
6109
+ */
6110
+ favicons?: {
6111
+ /**
6112
+ * Path to folder with favicons in format generated by https://realfavicongenerator.net
6113
+ */
6114
+ folderPath: string;
6115
+ safariFavicon: {
6116
+ color: string;
6117
+ };
6118
+ msFaviconApplication: {
6119
+ color: string;
6120
+ };
6121
+ };
6122
+ monetizationSelectOverlay?: {
6123
+ title?: string;
6124
+ };
6125
+ /**
6126
+ * Google Analytics ID. If provided, Google Analytics will be enabled.
6127
+ */
6128
+ googleAnalyticsId?: string;
6129
+ /**
6130
+ * If enabled, header menu will be centered.
6131
+ */
6132
+ centeredMenu?: boolean;
6133
+ /**
6134
+ * All values are considered as false if not provided.
6135
+ */
6136
+ socialLogins?: {
6137
+ showAppleLogin?: boolean;
6138
+ showGoogleLogin?: boolean;
6139
+ showPatreonLogin?: boolean;
6140
+ };
6141
+ /**
6142
+ * If the monetizations are filled in, the MonetizationSelectOverlay displays the monetizations from that configuration.
6143
+ */
6144
+ monetizationOverride?: string[];
6145
+ /**
6146
+ * If true, robots.txt will prevent crawling of the website.
6147
+ */
6148
+ norobots?: boolean;
6149
+ }
6150
+
5063
6151
  /**
5064
6152
  * @public
5065
6153
  */
5066
- export declare type WebGridScreenProps = {
6154
+ export declare interface WebGridScreenProps {
5067
6155
  screen?: Screen_2;
5068
6156
  seriesId?: string;
5069
6157
  season?: number;
5070
6158
  rowId?: string;
5071
6159
  videoId?: string;
5072
- };
6160
+ }
5073
6161
 
5074
6162
  /**
5075
6163
  * @public
@@ -5078,6 +6166,10 @@ export declare interface WebPlayerProps {
5078
6166
  id: string;
5079
6167
  source?: SourceParams | VideoPath | ChannelPath | null;
5080
6168
  onEnded?: () => any;
6169
+ /**
6170
+ * If true, the player will inherit the width and height of its parent element.
6171
+ */
6172
+ isSameSizeAsParent?: boolean;
5081
6173
  /**
5082
6174
  * If this function is specified, then "Back" button is shown in top right corner.
5083
6175
  */
@@ -5158,25 +6250,58 @@ export declare interface WebPlayerProps {
5158
6250
  * If true, it does not play the next video when the current video reaches the end.
5159
6251
  */
5160
6252
  disablePlayNext?: boolean;
6253
+ setPaymentOverlayVisible?: React_2.Dispatch<React_2.SetStateAction<boolean>>;
5161
6254
  }
5162
6255
 
5163
6256
  /**
5164
6257
  * @public
5165
6258
  */
5166
- export declare type WebRowProps = {
5167
- items?: ItemsInRow[];
6259
+ export declare interface WebProfileScreenProps {
6260
+ onLogout: () => void;
6261
+ }
6262
+
6263
+ /**
6264
+ * @public
6265
+ */
6266
+ export declare interface WebRowProps {
6267
+ items?: ItemInRow[];
5168
6268
  variant?: RowItemComponent;
5169
6269
  rowName?: string | any;
5170
6270
  fetchMore?: () => void;
5171
- onTileClick?: (item?: ItemsInRow | null) => void;
5172
- };
6271
+ onTileClick?: (item?: ItemInRow | null) => void;
6272
+ }
5173
6273
 
5174
6274
  /**
5175
6275
  * @public
5176
6276
  */
5177
- export declare type WebSeriesDetailScreenProps = {
6277
+ export declare interface WebSeriesDetailScreenProps {
5178
6278
  tagId: string;
5179
- };
6279
+ }
6280
+
6281
+ /**
6282
+ * Previously SdkReactConfig.
6283
+ */
6284
+ export declare interface WebTivioConfig extends Omit<TivioConfig, 'language'> {
6285
+ disableUnmounting?: boolean;
6286
+ enable?: boolean;
6287
+ enableSentry?: boolean;
6288
+ ErrorComponent?: any;
6289
+ LoaderComponent?: any;
6290
+ logger?: any | null;
6291
+ language?: LangCode;
6292
+ overrideLanguage?: LangCode;
6293
+ lockApplicationHandle?: string;
6294
+ applicationId?: string;
6295
+ }
6296
+
6297
+ /**
6298
+ * @public
6299
+ */
6300
+ export declare interface WebTivioProVideoScreenProps {
6301
+ video: Video;
6302
+ seriesTag?: Tag;
6303
+ autoplay: boolean;
6304
+ }
5180
6305
 
5181
6306
  /**
5182
6307
  * @public