@tivio/sdk-react 9.0.0 → 9.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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