@tivio/sdk-react 9.1.0-alpha.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
@@ -1014,14 +1218,6 @@ export declare type DocumentOptions = Partial<{
1014
1218
  subscribeOnChanges: boolean;
1015
1219
  }>;
1016
1220
 
1017
- /**
1018
- * Does the same as TivioProvider in useRemoteBundle - so it downloads bundle,
1019
- * calls init on it and returns bundle state.
1020
- *
1021
- * @public
1022
- */
1023
- export declare const downloadRemoteBundle: (conf: SdkReactConfig) => Promise<RemoteBundleState>;
1024
-
1025
1221
  export declare interface Drm {
1026
1222
  encryption: VideoSourceEncryption;
1027
1223
  /**
@@ -1073,6 +1269,15 @@ export declare enum DurationUnits {
1073
1269
  MONTH = "month"
1074
1270
  }
1075
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
+
1076
1281
  /**
1077
1282
  * Represents a SendGrid transactional template.
1078
1283
  */
@@ -1182,6 +1387,10 @@ export declare type Empty = void | Promise<void> | undefined | Promise<undefined
1182
1387
  */
1183
1388
  declare type Empty_2 = void | Promise<void> | undefined | Promise<undefined>;
1184
1389
 
1390
+ export declare enum EventName {
1391
+ REGISTRATION_DONE = "REGISTRATION_DONE"
1392
+ }
1393
+
1185
1394
  /**
1186
1395
  * @public
1187
1396
  */
@@ -1210,6 +1419,21 @@ export declare const fetchBundle: (secret: string, conf: InternalConfig) => Prom
1210
1419
  */
1211
1420
  declare type FetchPackage = (url: string) => Promise<string>;
1212
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
+
1213
1437
  /**
1214
1438
  * Counterpart for {@link ForbiddenError} from @tivio/api.
1215
1439
  * @public
@@ -1239,6 +1463,15 @@ export declare interface GenericOnCallError extends Error {
1239
1463
  details?: Record<string, string>;
1240
1464
  }
1241
1465
 
1466
+ /**
1467
+ * @public
1468
+ */
1469
+ export declare type GeoBlocking = {
1470
+ whitelist: Array<any>;
1471
+ } | {
1472
+ blacklist: Array<any>;
1473
+ };
1474
+
1242
1475
  export declare interface GetBaseAnalyticsRequest {
1243
1476
  /**
1244
1477
  * Id of organization to return analytics data.
@@ -1262,6 +1495,12 @@ export declare interface GetMonetizationsAnalyticsResponse {
1262
1495
  monetizationsAnalytics: MonetizationSummaryItem[];
1263
1496
  }
1264
1497
 
1498
+ export declare type GetMonetizationsCountsAnalyticsRequest = GetBaseAnalyticsRequest;
1499
+
1500
+ export declare interface GetMonetizationsCountsAnalyticsResponse {
1501
+ monetizationsCountsAnalytics: MonetizationsCountsSummaryItem[];
1502
+ }
1503
+
1265
1504
  /**
1266
1505
  * Share singleton instance
1267
1506
  * @public
@@ -1271,9 +1510,9 @@ export declare const getPubSub: () => PubSub;
1271
1510
  /**
1272
1511
  * @public
1273
1512
  */
1274
- export declare type GetPurchasableMonetizationsOptions = {
1513
+ export declare interface GetPurchasableMonetizationsOptions {
1275
1514
  includeMonetizationsWithPurchaseDisabled: boolean;
1276
- };
1515
+ }
1277
1516
 
1278
1517
  /**
1279
1518
  * Response from Tivio getPurchaseInfo HTTP endpoint.
@@ -1290,6 +1529,8 @@ export declare type GetPurchaseInfoResponse = {
1290
1529
  };
1291
1530
  };
1292
1531
 
1532
+ export declare type GetRowsInScreenResponse = PaginatedResponse<RowInScreen, 'screenId'>;
1533
+
1293
1534
  export declare interface GetSourceUrlRequest {
1294
1535
  /**
1295
1536
  * Id of the document to return source for.
@@ -1361,6 +1602,8 @@ export declare interface GetSourceUrlResponse {
1361
1602
  audioOnly?: boolean;
1362
1603
  }
1363
1604
 
1605
+ export declare type GetTilesInRowResponse<U extends NextPageParamType = NextPageParamType> = PaginatedResponse<TileData, U>;
1606
+
1364
1607
  export declare interface GetVideoAnalyticsErrorItem {
1365
1608
  count: number;
1366
1609
  timestamp: number;
@@ -1429,19 +1672,26 @@ export declare enum GRID_TYPES {
1429
1672
  SERIES = "SERIES"
1430
1673
  }
1431
1674
 
1432
- 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 = {
1433
1684
  attributes: {
1434
1685
  next_charge_date: string;
1435
- /**
1436
- * A null value indicates the member has never pledged. Can be null.
1437
- */
1438
- patron_status: 'active_patron' | 'declined_patron' | 'former_patron' | null;
1686
+ patron_status: PatreonStatus;
1439
1687
  /**
1440
1688
  * The only successful status is Paid. null if never charged. Can be null.
1441
1689
  * One of Paid Declined Deleted Pending Refunded Fraud Other.
1442
1690
  */
1443
1691
  last_charge_status: 'Paid' | 'Declined' | 'Deleted' | 'Pending' | 'Refunded' | 'Fraud' | 'Other';
1444
1692
  last_charge_date: string;
1693
+ pledge_relationship_start: string;
1694
+ campaign_lifetime_support_cents: number;
1445
1695
  };
1446
1696
  id: string;
1447
1697
  type: string;
@@ -1502,7 +1752,16 @@ export declare interface IndexedVideo extends IndexedObject {
1502
1752
  sharedOrganizationPaths?: string[];
1503
1753
  tagPaths?: string[];
1504
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
+ */
1505
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;
1506
1765
  type: VideoType;
1507
1766
  contentType?: VideoContentType;
1508
1767
  name: string | Translation;
@@ -1518,14 +1777,25 @@ export declare interface IndexedVideo extends IndexedObject {
1518
1777
  * True if the video is available in Tivio Pro (StarMe)
1519
1778
  */
1520
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;
1521
1787
  }
1522
1788
 
1523
1789
  /**
1524
1790
  * @internal
1525
1791
  */
1526
- export declare type InputOptions = {
1792
+ export declare interface InputOptions {
1527
1793
  borderRadius: string;
1528
- };
1794
+ backgroundColor?: string;
1795
+ color?: string;
1796
+ }
1797
+
1798
+ export declare type IntegrationType = 'discord' | 'patreon';
1529
1799
 
1530
1800
  /**
1531
1801
  * @public
@@ -1605,7 +1875,7 @@ export declare type ItemComponent = RowItemComponent | BannerItemComponent;
1605
1875
  /**
1606
1876
  * @public
1607
1877
  */
1608
- export declare type ItemsInRow = Tag | Video | TvChannel | Advertisement;
1878
+ export declare type ItemInRow = Tag | Video | TvChannel | Advertisement | Application | Article;
1609
1879
 
1610
1880
  /**
1611
1881
  * @public
@@ -1615,6 +1885,11 @@ export declare interface JojExternals {
1615
1885
  tvProfiContentId?: string;
1616
1886
  tvProfiSerialId?: string;
1617
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;
1618
1893
  provysId?: string;
1619
1894
  tvProfiProvysId?: string;
1620
1895
  tvProfiHouseId?: string;
@@ -1657,10 +1932,18 @@ export declare type LanguageType = `${LangCode}`;
1657
1932
  /**
1658
1933
  * @public
1659
1934
  */
1660
- export declare type LinkedVideo = {
1935
+ export declare interface LinkedVideo {
1661
1936
  video: Video;
1662
- type: 'CUT' | 'TRAILER' | 'BONUS' | 'CHILD';
1663
- };
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
+ }
1664
1947
 
1665
1948
  declare type Links = {
1666
1949
  self: string;
@@ -1765,7 +2048,9 @@ declare type LoggerArgs = any[];
1765
2048
 
1766
2049
  export declare enum LoginRedirect {
1767
2050
  PAYMENT = "payment",
1768
- VOUCHER = "voucher"
2051
+ VOUCHER = "voucher",
2052
+ VOUCHER_PURCHASE = "voucherPurchase",
2053
+ MAGENTA_MOMENTS = "magenta_moments"
1769
2054
  }
1770
2055
 
1771
2056
  /**
@@ -1793,10 +2078,10 @@ export declare interface Marker {
1793
2078
  /**
1794
2079
  * @public
1795
2080
  */
1796
- export declare type MarkersProps = {
2081
+ export declare interface MarkersProps {
1797
2082
  color?: string;
1798
2083
  className?: string;
1799
- };
2084
+ }
1800
2085
 
1801
2086
  declare type Membership = {
1802
2087
  id: string;
@@ -1809,7 +2094,23 @@ declare type Membership = {
1809
2094
  */
1810
2095
  export declare interface MigratedVideoExternals {
1811
2096
  externalVideoId: string;
1812
- 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[];
1813
2114
  }
1814
2115
 
1815
2116
  /**
@@ -1820,6 +2121,7 @@ export declare interface Monetization {
1820
2121
  type?: MonetizationType;
1821
2122
  name?: string;
1822
2123
  description?: string;
2124
+ organizationId?: string;
1823
2125
  }
1824
2126
 
1825
2127
  /**
@@ -1865,6 +2167,21 @@ export declare interface MonetizationCardProps {
1865
2167
  focused?: boolean;
1866
2168
  }
1867
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
+
1868
2185
  /**
1869
2186
  * @public
1870
2187
  */
@@ -1881,8 +2198,15 @@ export declare interface MonetizationsSelectOverlayData {
1881
2198
  */
1882
2199
  voucherPurchase?: boolean;
1883
2200
  registrationRedirect?: boolean;
2201
+ organizationId?: string;
1884
2202
  onPurchase?: () => void;
1885
2203
  onClose?: () => void;
2204
+ hideActivateVoucherButton?: boolean;
2205
+ showHeaderBackButton?: boolean;
2206
+ /**
2207
+ * Applies only if {@link subscriptions} are passed.
2208
+ */
2209
+ doNotFilterPassedSubscriptions?: boolean;
1886
2210
  }
1887
2211
 
1888
2212
  /**
@@ -1891,7 +2215,7 @@ export declare interface MonetizationsSelectOverlayData {
1891
2215
  export declare type MonetizationsSelectOverlayState = {
1892
2216
  isOpen: boolean;
1893
2217
  data: MonetizationsSelectOverlayData | null;
1894
- openMonetizationsSelectOverlay: (data: MonetizationsSelectOverlayData) => void;
2218
+ openMonetizationsSelectOverlay: (data?: MonetizationsSelectOverlayData) => void;
1895
2219
  closeMonetizationsSelectOverlay: () => void;
1896
2220
  };
1897
2221
 
@@ -1951,6 +2275,8 @@ export declare type NewVoucher = {
1951
2275
  expirationDate: Date | number;
1952
2276
  };
1953
2277
 
2278
+ declare type NextPageParamType = 'screenId' | 'rowId' | 'filter';
2279
+
1954
2280
  /**
1955
2281
  * @public
1956
2282
  */
@@ -2025,8 +2351,13 @@ declare type OrderByDirection = 'desc' | 'asc';
2025
2351
  * @public
2026
2352
  */
2027
2353
  export declare interface Organization {
2354
+ id: string;
2028
2355
  userProfileConfiguration: any;
2029
2356
  screenConfigs: ScreenConfig[];
2357
+ logo: string | null;
2358
+ logoLandscape: string | null;
2359
+ organizationBanner: string | null;
2360
+ profilePhoto: string | null;
2030
2361
  }
2031
2362
 
2032
2363
  /**
@@ -2039,6 +2370,23 @@ export declare type OtherSource = SourceBase & StartAndContinuePosition & {
2039
2370
  type: 'other';
2040
2371
  };
2041
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
+
2042
2390
  /**
2043
2391
  * @public
2044
2392
  */
@@ -2058,6 +2406,18 @@ export declare type PaginationOptions = Partial<{
2058
2406
  noAutoFetch: boolean;
2059
2407
  }>;
2060
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
+
2061
2421
  export declare type PatreonCreatorData = {
2062
2422
  campaign: string;
2063
2423
  tiers: Tier[];
@@ -2073,6 +2433,11 @@ declare type PatreonError = {
2073
2433
  title?: string;
2074
2434
  };
2075
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
+
2076
2441
  export declare type PatreonUserAuth = {
2077
2442
  access_token: string;
2078
2443
  refresh_token: string;
@@ -2082,9 +2447,16 @@ export declare type PatreonUserAuth = {
2082
2447
  version?: string;
2083
2448
  };
2084
2449
 
2450
+ export declare interface PatreonUserAuthWithCreated extends PatreonUserAuth {
2451
+ /**
2452
+ * unix timestamp in ms
2453
+ */
2454
+ created: number;
2455
+ }
2456
+
2085
2457
  export declare type PatreonUserResponse = {
2086
2458
  data: Data;
2087
- included: IncludedItem[];
2459
+ included?: IncludedItem[];
2088
2460
  links: Links;
2089
2461
  errors?: PatreonError[];
2090
2462
  };
@@ -2142,6 +2514,7 @@ export declare interface PlayerCapability {
2142
2514
  * @public
2143
2515
  */
2144
2516
  export declare type PlayerConfig = {
2517
+ enabled?: boolean;
2145
2518
  /**
2146
2519
  * Some devices do not seek exactly
2147
2520
  *
@@ -2318,6 +2691,7 @@ export declare interface PlayerEngineInterface {
2318
2691
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#playsinline
2319
2692
  */
2320
2693
  setPlaysInline(value: boolean): void;
2694
+ setControlsList(value: string[]): void;
2321
2695
  }
2322
2696
 
2323
2697
  /**
@@ -2397,6 +2771,7 @@ export declare interface PlayerInterface {
2397
2771
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#playsinline
2398
2772
  */
2399
2773
  setPlaysInline?: (value: boolean) => void;
2774
+ setControlsList?: (value: string[]) => void;
2400
2775
  }
2401
2776
 
2402
2777
  /**
@@ -2576,6 +2951,8 @@ export declare type PlayerWrapperEventTypeType = `${PlayerWrapperEventType}`;
2576
2951
  export declare interface Promotion {
2577
2952
  duration?: Duration;
2578
2953
  price?: number;
2954
+ requiresPaymentAuthorization?: boolean;
2955
+ hideOtherSubscriptions?: boolean;
2579
2956
  }
2580
2957
 
2581
2958
  /**
@@ -2583,6 +2960,25 @@ export declare interface Promotion {
2583
2960
  */
2584
2961
  export declare type PromotionType = 'CLASSIC' | 'PATREON';
2585
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
+
2586
2982
  /**
2587
2983
  * @public
2588
2984
  */
@@ -2605,6 +3001,7 @@ export declare interface PurchasableMonetization extends Monetization {
2605
3001
  price?: string | number;
2606
3002
  promotion: Promotion | null;
2607
3003
  frequency?: MONETIZATION_FREQUENCY;
3004
+ durationDays?: number;
2608
3005
  /**
2609
3006
  * Returns TRUE if subscription is purchased (and not expired) by user.
2610
3007
  * Returns TRUE if transaction is purchased (and not expired) for transactionItemId.
@@ -2630,6 +3027,10 @@ export declare interface PurchasableMonetization extends Monetization {
2630
3027
  * Returns array of tag ids of monetization placements
2631
3028
  */
2632
3029
  tagIds: string[];
3030
+ /**
3031
+ * When set to true, subscription is hidden in UI (e.g. in MonetizationSelectOverlay).
3032
+ */
3033
+ subscriptionIsHidden?: boolean;
2633
3034
  }
2634
3035
 
2635
3036
  /**
@@ -2645,6 +3046,7 @@ export declare type Purchase = {
2645
3046
  */
2646
3047
  createdBy?: string;
2647
3048
  expirationDate: Date | null;
3049
+ gateway: PurchaseDocumentGateway | null;
2648
3050
  id: string;
2649
3051
  isExpired: boolean;
2650
3052
  /**
@@ -2664,6 +3066,8 @@ export declare type Purchase = {
2664
3066
  videoId: string | null;
2665
3067
  videoRef: any | null;
2666
3068
  voucherId: string | null;
3069
+ isVoucherActivation?: boolean;
3070
+ rebalancingVideoRef?: any;
2667
3071
  };
2668
3072
 
2669
3073
  /**
@@ -2675,7 +3079,8 @@ export declare enum PurchaseDocumentGateway {
2675
3079
  'voucher' = "voucher",
2676
3080
  'comgate' = "comgate",
2677
3081
  'tivio' = "tivio",
2678
- 'patreon' = "patreon"
3082
+ 'patreon' = "patreon",
3083
+ 'paypal' = "paypal"
2679
3084
  }
2680
3085
 
2681
3086
  /**
@@ -2702,6 +3107,10 @@ export declare type PurchaseEndpointPayload = {
2702
3107
  * really expire at this timestamp - additional payment of this subscription can occur so expiration timestamp may be increased.
2703
3108
  */
2704
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;
2705
3114
  /**
2706
3115
  * Gateway name or "voucher".
2707
3116
  */
@@ -2723,9 +3132,10 @@ export declare type PurchaseEndpointPayload = {
2723
3132
  */
2724
3133
  originalPurchaseId?: string;
2725
3134
  /**
2726
- * 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).
2727
3137
  */
2728
- previousStatus: PurchaseStatus;
3138
+ previousStatus?: PurchaseStatus;
2729
3139
  /**
2730
3140
  * Timestamp of the last change of the purchase - in this case it is timestamp when it was paid.
2731
3141
  */
@@ -2818,8 +3228,8 @@ export declare type PurchaseEndpointPayload = {
2818
3228
  * @public
2819
3229
  */
2820
3230
  export declare type PurchaseMonetization = {
3231
+ durationDays?: MONETIZATION_DURATION | number;
2821
3232
  currency?: Currency;
2822
- period?: number;
2823
3233
  price?: number;
2824
3234
  /**
2825
3235
  * Here are only transaction and subscription because purchasing of advertisement monetization doesn't make sense.
@@ -2885,6 +3295,7 @@ export declare interface QerkoCancellationInfo {
2885
3295
  export declare interface QerkoData {
2886
3296
  monetization: PurchasableMonetization;
2887
3297
  item?: Video | TvChannel;
3298
+ isMagentaMoments?: boolean;
2888
3299
  /**
2889
3300
  * If set to true, user is buying voucher.
2890
3301
  * Otherwise, user is making a purchase for himself.
@@ -2922,6 +3333,7 @@ export declare interface QerkoPaymentInfo {
2922
3333
  monetizationType: MonetizationType;
2923
3334
  recovery?: boolean;
2924
3335
  monetizationFrequency: MONETIZATION_FREQUENCY;
3336
+ customToken?: string;
2925
3337
  }
2926
3338
 
2927
3339
  /**
@@ -2938,20 +3350,85 @@ export declare interface QerkoPaymentProps {
2938
3350
  }
2939
3351
 
2940
3352
  /**
3353
+ * Request body which is accepted by qerkoPaymentWebhookByApiKey endpoint.
3354
+ *
2941
3355
  * @public
2942
3356
  */
2943
- export declare interface QerkoTransaction {
2944
- paymentInfo: QerkoPaymentInfo | null;
2945
- paymentError: string | null;
2946
- paymentStatus: string | null;
2947
- getPaymentInfo: () => Promise<void>;
2948
- voucherId?: string;
2949
- }
2950
-
2951
- /**
2952
- * @public
2953
- */
2954
- export declare type ReactNativeDeviceInfo = {
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
+
3384
+ /**
3385
+ * @public
3386
+ */
3387
+ export declare interface QerkoTransaction {
3388
+ paymentInfo: QerkoPaymentInfo | null;
3389
+ paymentError: string | null;
3390
+ paymentStatus: string | null;
3391
+ getPaymentInfo: () => Promise<void>;
3392
+ voucherId?: string;
3393
+ }
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
+
3428
+ /**
3429
+ * @public
3430
+ */
3431
+ export declare type ReactNativeDeviceInfo = {
2955
3432
  type: 'react-native';
2956
3433
  /**
2957
3434
  * Type values defined according to {@link OperatingSystem} from `detect-browser` package for convenience.
@@ -2963,7 +3440,10 @@ export declare type ReactNativeDeviceInfo = {
2963
3440
  };
2964
3441
 
2965
3442
  export declare enum RegistrationRedirect {
2966
- PAYMENT = "payment"
3443
+ PAYMENT = "payment",
3444
+ VOUCHER_PURCHASE = "voucherPurchase",
3445
+ VOUCHER = "voucher",
3446
+ MAGENTA_MOMENTS = "magenta_moments"
2967
3447
  }
2968
3448
 
2969
3449
  declare type Relationship = {
@@ -2987,11 +3467,11 @@ export declare type RemoteBundleState = {
2987
3467
  /**
2988
3468
  * @public
2989
3469
  */
2990
- export declare type RemoteProviderProps = {
3470
+ export declare interface RemoteProviderProps {
2991
3471
  disableUnmounting?: boolean;
2992
3472
  language?: LangCode;
2993
3473
  children: React_2.ReactNode;
2994
- };
3474
+ }
2995
3475
 
2996
3476
  /**
2997
3477
  * Conditions that are dynamically applied to screens before they are rendered.
@@ -3000,20 +3480,33 @@ export declare type RemoteProviderProps = {
3000
3480
  * 'else' indicates what should happen if the conditions are not met.
3001
3481
  * 'elseValue' is a payload.
3002
3482
  */
3003
- export declare type RenderCondition = {
3483
+ export declare interface RenderCondition {
3004
3484
  type: ScreenConditionType;
3485
+ value?: RenderConditionValue[];
3005
3486
  else: ScreenConditionElse;
3006
3487
  elseValue: RenderConditionElseValue[];
3007
- };
3488
+ }
3008
3489
 
3009
- export declare type RenderConditionElseValue = {
3490
+ export declare interface RenderConditionElseValue {
3010
3491
  key: string;
3011
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]>;
3012
3505
  };
3013
3506
 
3014
3507
  /**
3015
3508
  * Makes optional attributes in given type to be required and nullable.
3016
- * e.g. will make `attribute?: string` to be `attribute: string | null`
3509
+ * e.g. will make `{ attribute?: string }` to be `{ attribute: string | null }`
3017
3510
  * @internal
3018
3511
  */
3019
3512
  export declare type RequiredNullable<T> = {
@@ -3024,29 +3517,51 @@ export declare type RequiredNullable<T> = {
3024
3517
  * @public
3025
3518
  */
3026
3519
  export declare interface RouterOverrides {
3027
- getVideoDetailPath: (videoIdOrUrlName: string) => string;
3028
- getSeriesDetailPath: (tagId: string) => string;
3520
+ getVideoDetailPath: (videoIdOrUrlName: string, item?: ItemInRow) => string;
3521
+ getSeriesDetailPath: (tagId: string, item?: ItemInRow) => string;
3029
3522
  getTagPath: (tagId: string) => string;
3030
3523
  getLoginPath: () => string;
3031
3524
  getRegistrationPath: () => string;
3032
3525
  getLivePlayerPath: (tvChannelId: string) => string;
3033
3526
  getVodPlayerPath: (videoIdOrUrlName: string) => string;
3034
3527
  getHomePath: (screens: ScreenConfig[]) => string;
3035
- 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;
3036
3542
  goToSeriesDetailPage: (tagId: string) => void;
3037
3543
  goToTagPage: (tagId: string) => void;
3038
3544
  goToLoginPage: (options?: {
3039
3545
  manual?: boolean;
3040
3546
  origin?: LoginRedirect;
3547
+ email?: string;
3548
+ urlHandle?: string;
3549
+ replace?: boolean;
3041
3550
  }) => void;
3042
3551
  goToRegistrationPage: (options?: {
3043
3552
  origin?: RegistrationRedirect;
3553
+ email?: string;
3044
3554
  }) => void;
3045
3555
  goBack: () => void;
3046
3556
  goLivePlayer: (tvChannelId: string) => void;
3047
3557
  goVodPlayer: (videoIdOrUrlName: string) => void;
3048
3558
  goToHome: (user?: any, activeUserProfileId?: string) => void;
3049
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;
3050
3565
  }
3051
3566
 
3052
3567
  /**
@@ -3063,43 +3578,44 @@ export declare interface RouterOverridesContextState {
3063
3578
  /**
3064
3579
  * @public
3065
3580
  */
3066
- 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
+ }
3067
3598
 
3068
3599
  /**
3069
3600
  * @public
3070
3601
  */
3071
3602
  export declare enum ROW_ITEM_TYPES {
3603
+ APPLICATION = "APPLICATION",
3072
3604
  VIDEO = "VIDEO",
3073
3605
  TAG = "TAG",
3074
3606
  TV_CHANNEL = "TV_CHANNEL",
3075
- ADVERTISEMENT = "ADVERTISEMENT"
3607
+ ADVERTISEMENT = "ADVERTISEMENT",
3608
+ ARTICLE = "ARTICLE"
3076
3609
  }
3077
3610
 
3078
3611
  /**
3079
- * @private
3612
+ * @public
3080
3613
  */
3081
- export declare interface RowBanner extends RowBase {
3614
+ export declare interface RowBanner extends Row {
3082
3615
  rowComponent: RowComponent.BANNER;
3083
3616
  itemComponent: BannerItemComponent;
3084
3617
  }
3085
3618
 
3086
- /**
3087
- * @private
3088
- */
3089
- declare interface RowBase {
3090
- id: string;
3091
- rowId: string;
3092
- name: string;
3093
- description?: string;
3094
- assets: Assets;
3095
- type: ScreenRowType;
3096
- isLiveRow: boolean;
3097
- numberOfLines?: number;
3098
- monetizations?: {
3099
- monetizationRef: any;
3100
- }[];
3101
- }
3102
-
3103
3619
  /**
3104
3620
  * @public
3105
3621
  */
@@ -3108,13 +3624,14 @@ export declare enum RowComponent {
3108
3624
  BANNER = "BANNER"
3109
3625
  }
3110
3626
 
3111
- declare enum RowFilterCollection {
3627
+ export declare enum RowFilterCollection {
3112
3628
  VIDEOS = "videos",
3113
3629
  /**
3114
3630
  * This is not real collection path. Path always should be ${organizationId}/tags
3115
3631
  */
3116
3632
  TAGS = "tags",
3117
- TV_CHANNELS = "tvChannels"
3633
+ TV_CHANNELS = "tvChannels",
3634
+ CONTENTS = "contents"
3118
3635
  }
3119
3636
 
3120
3637
  /**
@@ -3124,19 +3641,66 @@ declare enum RowFilterCollection {
3124
3641
  export declare interface RowFilterField {
3125
3642
  collection: RowFilterCollection;
3126
3643
  limit?: number;
3127
- orderBy: {
3644
+ orderBy?: {
3128
3645
  fieldPath: RowOrderByFieldPath;
3129
- directionStr: OrderByDirection;
3646
+ directionStr?: OrderByDirection;
3130
3647
  };
3131
- where: RowFilterWhereField[];
3648
+ where?: RowFilterWhereField[];
3132
3649
  }
3133
3650
 
3134
- declare interface RowFilterWhereField {
3651
+ export declare interface RowFilterWhereField {
3135
3652
  fieldPath: RowWhereFilterFieldPath;
3136
3653
  opStr: WhereFilterOp;
3137
3654
  value: any;
3138
3655
  }
3139
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
+
3140
3704
  /**
3141
3705
  * @public
3142
3706
  */
@@ -3145,7 +3709,21 @@ export declare interface RowItem extends RowItemAssets {
3145
3709
  itemType: ROW_ITEM_TYPES;
3146
3710
  name?: string;
3147
3711
  description?: string;
3148
- 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;
3149
3727
  }
3150
3728
 
3151
3729
  /**
@@ -3155,6 +3733,7 @@ export declare interface RowItemAssets {
3155
3733
  landscape?: string | null;
3156
3734
  portrait?: string | null;
3157
3735
  circled?: string | null;
3736
+ square?: string | null;
3158
3737
  banner?: string | null;
3159
3738
  bannerMobile?: string | null;
3160
3739
  }
@@ -3165,7 +3744,12 @@ export declare interface RowItemAssets {
3165
3744
  export declare enum RowItemComponent {
3166
3745
  ROW_ITEM_PORTRAIT = "ROW_ITEM_PORTRAIT",
3167
3746
  ROW_ITEM_LANDSCAPE = "ROW_ITEM_LANDSCAPE",
3168
- 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"
3169
3753
  }
3170
3754
 
3171
3755
  /**
@@ -3192,9 +3776,9 @@ export declare enum RowOrderByFieldPath {
3192
3776
  }
3193
3777
 
3194
3778
  /**
3195
- * @private
3779
+ * @public
3196
3780
  */
3197
- export declare interface RowStandard extends RowBase {
3781
+ export declare interface RowStandard extends Row {
3198
3782
  rowComponent: RowComponent.ROW;
3199
3783
  itemComponent: RowItemComponent;
3200
3784
  }
@@ -3205,7 +3789,10 @@ export declare enum RowWhereFilterFieldPath {
3205
3789
  TAG_TYPE_REF = "tagTypeRef",
3206
3790
  TYPE = "type",
3207
3791
  CONTENT_TYPE = "contentType",
3208
- CHANNEL_KEY = "channelKey"
3792
+ CHANNEL_KEY = "channelKey",
3793
+ PUBLISHED_STATUS = "publishedStatus",
3794
+ ORGANIZATION_REF = "organizationRef",
3795
+ TRANSCODING_STATUS = "transcodingStatus"
3209
3796
  }
3210
3797
 
3211
3798
  /**
@@ -3229,20 +3816,35 @@ declare interface Screen_2 {
3229
3816
  id: string;
3230
3817
  name: string | null;
3231
3818
  description?: string | null;
3232
- assets: Assets;
3233
- rows: Row[];
3819
+ assets: AssetsField;
3820
+ rows: PaginatedResponse<Row>;
3234
3821
  type?: ScreenType;
3235
3822
  filter?: RowFilterField | null;
3236
- 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>;
3237
3837
  }
3238
3838
  export { Screen_2 as Screen }
3239
3839
 
3240
3840
  export declare enum ScreenConditionElse {
3241
- SET_QUERY_PARAMS = "setQueryParams"
3841
+ SET_QUERY_PARAMS = "setQueryParams",
3842
+ SHOW_PURCHASE_MODAL = "showPurchaseModal"
3242
3843
  }
3243
3844
 
3244
3845
  export declare enum ScreenConditionType {
3245
- SUBSCRIBED = "subscribed"
3846
+ SUBSCRIBED = "subscribed",
3847
+ SIGNED_IN = "signedIn"
3246
3848
  }
3247
3849
 
3248
3850
  /**
@@ -3252,24 +3854,18 @@ export declare type ScreenConfig = {
3252
3854
  id: string;
3253
3855
  name: string;
3254
3856
  route?: string;
3857
+ isHiddenFromMenu?: boolean;
3255
3858
  showForUserProfileType?: {
3256
3859
  kids: boolean;
3257
3860
  adults: boolean;
3258
3861
  };
3862
+ monetizationAccessIds?: string[];
3259
3863
  };
3260
3864
 
3261
3865
  /**
3262
3866
  * @public
3263
3867
  */
3264
- export declare type ScreenOptions = Partial<{
3265
- language: LangCode;
3266
- initRows: boolean;
3267
- }> & DocumentOptions;
3268
-
3269
- /**
3270
- * @public
3271
- */
3272
- export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched';
3868
+ export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched' | 'applications';
3273
3869
 
3274
3870
  /**
3275
3871
  * Listen to screen data
@@ -3283,7 +3879,9 @@ export declare type ScreenSubscription = (screenId: string, cb: (error: Error |
3283
3879
  export declare enum ScreenType {
3284
3880
  DEFAULT = "default",
3285
3881
  GRID = "grid",
3286
- EMBED = "embed"
3882
+ EMBED = "embed",
3883
+ RECOMMENDATION = "recommendation",
3884
+ FEED = "feed"
3287
3885
  }
3288
3886
 
3289
3887
  /**
@@ -3324,6 +3922,12 @@ export declare enum SemanticDate {
3324
3922
  TOMORROW = "Tomorrow"
3325
3923
  }
3326
3924
 
3925
+ export declare interface SendFinalizeRegistrationEmailPayload {
3926
+ email: string;
3927
+ userId: string;
3928
+ authUserId: string;
3929
+ }
3930
+
3327
3931
  /**
3328
3932
  * Used for entities, that can be global (e.g. asset presets, tag types).
3329
3933
  * Non-global is stored under organizations (in sub-collection), and shown for organization's users and super-admin.
@@ -3349,6 +3953,15 @@ export declare const setUser: (userId: string | null, payload?: UserPayload) =>
3349
3953
  */
3350
3954
  export declare const showGdprConsentPreferences: () => Promise<void>;
3351
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
+
3352
3965
  /**
3353
3966
  * @public
3354
3967
  */
@@ -3434,13 +4047,18 @@ export declare type StartAndContinuePosition = {
3434
4047
  declare interface StorageManager_2 {
3435
4048
  getItem(key: string): string | null | Promise<string | null>;
3436
4049
  setItem(key: string, value: string): void | Promise<void>;
4050
+ removeItem(key: string): void | Promise<void>;
3437
4051
  }
3438
4052
  export { StorageManager_2 as StorageManager }
3439
4053
 
4054
+ export declare interface StoreBadgeConfig {
4055
+ appId: string;
4056
+ }
4057
+
3440
4058
  /**
3441
4059
  * @public
3442
4060
  */
3443
- 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;
3444
4062
 
3445
4063
  /**
3446
4064
  * @public
@@ -3456,11 +4074,6 @@ export declare type SubscribeToItemsInRowOptions = Partial<{
3456
4074
  */
3457
4075
  export declare type SubscribeToRowsInScreen = (screenId: string, cb: (error: Error | null, data: PaginationInterface<Row> | null) => void, options?: PaginationOptions) => Disposer_2;
3458
4076
 
3459
- /**
3460
- * @public
3461
- */
3462
- export declare type SubscribeToScreen = (screenId: string, cb: (error: Error | null, data: Screen_2 | null) => void, options?: ScreenOptions) => Disposer_2;
3463
-
3464
4077
  /**
3465
4078
  * @public
3466
4079
  */
@@ -3488,7 +4101,7 @@ export declare interface SuccessConfirmationOverlayPayload extends ConfirmationO
3488
4101
  confirmButtonText?: string;
3489
4102
  }
3490
4103
 
3491
- 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>;
3492
4105
 
3493
4106
  /**
3494
4107
  * @public
@@ -3498,7 +4111,7 @@ export declare interface Tag extends RowItem {
3498
4111
  itemType: ROW_ITEM_TYPES.TAG;
3499
4112
  tagId: string;
3500
4113
  type?: string | null;
3501
- metadata?: any[];
4114
+ metadata?: TagMetadataField[];
3502
4115
  color?: string;
3503
4116
  detailBanner?: string;
3504
4117
  availableSeasons?: AvailableSeason[];
@@ -3506,6 +4119,17 @@ export declare interface Tag extends RowItem {
3506
4119
  addToFavorites: () => void;
3507
4120
  removeFromFavorites: () => void;
3508
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;
3509
4133
  }
3510
4134
 
3511
4135
  /**
@@ -3513,6 +4137,61 @@ export declare interface Tag extends RowItem {
3513
4137
  */
3514
4138
  export declare type TaggedVideosOrderByField = 'seasonNumber' | 'episodeNumber' | 'contentType' | DefaultOrderByField;
3515
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
+
3516
4195
  export declare type Tier = {
3517
4196
  attributes: {
3518
4197
  amount_cents: number;
@@ -3531,15 +4210,48 @@ export declare interface TileApplicationData {
3531
4210
  name: Translation;
3532
4211
  description?: string;
3533
4212
  logo: string;
4213
+ organizationBanner?: string;
3534
4214
  urlHandle: string;
3535
4215
  organizationId: string;
3536
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;
3537
4249
  }
3538
4250
 
3539
4251
  /**
3540
4252
  * @internal
3541
4253
  */
3542
- export declare type TileOptions = {
4254
+ export declare interface TileOptions {
3543
4255
  focusedShadowColor?: string;
3544
4256
  borderColor: string;
3545
4257
  /**
@@ -3548,6 +4260,14 @@ export declare type TileOptions = {
3548
4260
  borderRadius: string | number;
3549
4261
  innerContainer: {
3550
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';
3551
4271
  };
3552
4272
  innerLabel: {
3553
4273
  /**
@@ -3573,16 +4293,18 @@ export declare type TileOptions = {
3573
4293
  fontSize: number;
3574
4294
  };
3575
4295
  color?: string;
3576
- };
4296
+ fullWidthProgress?: boolean;
4297
+ }
3577
4298
 
3578
4299
  /**
3579
4300
  * @public
3580
4301
  */
3581
- export declare type TileProps = {
4302
+ export declare interface TileProps {
3582
4303
  children?: React_2.ReactNode;
3583
- cover: string;
4304
+ cover?: string;
3584
4305
  bottomLabel: string;
3585
4306
  bottomLabelAreaHeight: number;
4307
+ bottomComponent?: React_2.ReactNode;
3586
4308
  innerLabel: string;
3587
4309
  duration: string;
3588
4310
  price: string | null;
@@ -3595,7 +4317,9 @@ export declare type TileProps = {
3595
4317
  progress?: number;
3596
4318
  time?: string;
3597
4319
  logo?: string;
4320
+ bigLogo?: string;
3598
4321
  coverHeight: number;
4322
+ aspectRatio?: number;
3599
4323
  /**
3600
4324
  * Margin of inner TileContainer.
3601
4325
  * Now used for backward compatibility for WebTileGrid. Consider to use it other way.
@@ -3603,7 +4327,12 @@ export declare type TileProps = {
3603
4327
  containerMargin?: number | string;
3604
4328
  created?: Date;
3605
4329
  numberOfLines?: number;
3606
- };
4330
+ applicationName?: string;
4331
+ applicationLogo?: string;
4332
+ hasBranding?: boolean;
4333
+ applicationHandle?: string;
4334
+ fullWidth?: boolean;
4335
+ }
3607
4336
 
3608
4337
  /**
3609
4338
  * @public
@@ -3613,7 +4342,7 @@ export declare type TilePropsPartial = Partial<TileProps>;
3613
4342
  /**
3614
4343
  * @internal
3615
4344
  */
3616
- export declare type TileSizes = {
4345
+ export declare interface TileSizes {
3617
4346
  coverPaddingTop: number;
3618
4347
  coverPaddingBottom: number;
3619
4348
  coverWidth: number;
@@ -3624,7 +4353,7 @@ export declare type TileSizes = {
3624
4353
  * Now only bottom label supports multiline text.
3625
4354
  */
3626
4355
  labelLinesCount: number;
3627
- };
4356
+ }
3628
4357
 
3629
4358
  /**
3630
4359
  * Tile sizes by Tile variant (row item component)
@@ -3687,7 +4416,7 @@ export declare type TivioBundleFile = {
3687
4416
  /**
3688
4417
  * @public
3689
4418
  */
3690
- export declare type TivioComponents = {
4419
+ export declare interface TivioComponents {
3691
4420
  Markers: React_2.ComponentType<MarkersProps>;
3692
4421
  PlayerDataContext: React_2.Context<{
3693
4422
  player: any | null;
@@ -3709,6 +4438,7 @@ export declare type TivioComponents = {
3709
4438
  FeatureSupportCheck: React_2.ComponentType;
3710
4439
  CustomerScreen: React_2.ComponentType<{
3711
4440
  screenId: string;
4441
+ screen: Screen_2;
3712
4442
  }>;
3713
4443
  WebTagScreen: React_2.ComponentType<{
3714
4444
  tagId: string;
@@ -3720,11 +4450,13 @@ export declare type TivioComponents = {
3720
4450
  }>;
3721
4451
  WebRow: React_2.ComponentType<WebRowProps>;
3722
4452
  WebTile: React_2.ComponentType<{
3723
- item?: ItemsInRow;
4453
+ item?: ItemInRow;
3724
4454
  } & TilePropsPartial>;
3725
4455
  ChannelContext: React_2.Context<TvChannel | undefined>;
3726
4456
  ContentSortPicker: React_2.ComponentType<ContentSortPickerProps>;
3727
- };
4457
+ WebProfileScreen: React_2.ComponentType<WebProfileScreenProps>;
4458
+ WebTivioProVideoScreen: React_2.ComponentType<WebTivioProVideoScreenProps>;
4459
+ }
3728
4460
 
3729
4461
  /**
3730
4462
  * @public
@@ -3751,10 +4483,13 @@ export declare interface TivioConfig {
3751
4483
  debug?: boolean;
3752
4484
  verbose?: boolean;
3753
4485
  firebaseApp?: any | null;
4486
+ firebaseFactory?: (config: Object, appName?: string) => firebase.FirebaseApp;
4487
+ authDomainOverride?: string;
3754
4488
  firestore?: any | null;
3755
4489
  currency: Currency;
3756
4490
  applicationId?: string;
3757
4491
  isTivioProApp?: boolean;
4492
+ lockApplicationHandle?: string;
3758
4493
  /**
3759
4494
  * Configuration for GDPR consent collection (CMP)
3760
4495
  */
@@ -3815,7 +4550,7 @@ export declare type TivioHooks = {
3815
4550
  useAdSegment: () => AdSegment_2 | null;
3816
4551
  useCancelSubscription: UseCancelSubscription;
3817
4552
  useItemsInRow: (rowId?: string, options?: PaginationOptions) => {
3818
- pagination: PaginationInterface<ItemsInRow> | null;
4553
+ pagination: PaginationInterface<ItemInRow> | null;
3819
4554
  error: Error | null;
3820
4555
  };
3821
4556
  usePurchaseRecovery: () => {
@@ -3880,6 +4615,7 @@ export declare type TivioInternalComponents = {
3880
4615
  onClose: (selectedProfileId: string) => void;
3881
4616
  }>;
3882
4617
  Banner: React_2.ComponentType<BannerPropsPartial>;
4618
+ CustomAppHistoryContext: React_2.Context<HistoryContextData | undefined>;
3883
4619
  };
3884
4620
 
3885
4621
  /**
@@ -3896,7 +4632,7 @@ export declare type TivioInternalHooks = {
3896
4632
  pagination: PaginationInterface<Video> | null;
3897
4633
  error: Error | null;
3898
4634
  };
3899
- useSimilars: () => {
4635
+ useSimilars: (shouldLoadApplicationsOfOrganizations?: boolean) => {
3900
4636
  getSimilars: ({ videoId, similarsQuery }: {
3901
4637
  videoId: string;
3902
4638
  similarsQuery?: RecommendationsQuery | undefined;
@@ -3910,9 +4646,12 @@ export declare type TivioInternalHooks = {
3910
4646
  useCurrentApplication: () => {
3911
4647
  screenConfigs: ScreenConfig[] | undefined;
3912
4648
  isLoading: boolean;
3913
- switchApplicationByHandle: (handle?: string) => (Promise<void> | undefined);
3914
4649
  isDefaultOrganization: boolean;
3915
4650
  };
4651
+ useDefaultApplication: () => {
4652
+ isLoading: boolean;
4653
+ screenConfigs: ScreenConfig[] | undefined;
4654
+ };
3916
4655
  useIsMonetizationPurchased: () => {
3917
4656
  isOneOfSubscriptionPurchased: (subscriptionIds: string[]) => boolean;
3918
4657
  };
@@ -3937,6 +4676,7 @@ export declare type TivioInternalHooks = {
3937
4676
  useOrganization: () => Organization | null;
3938
4677
  useRow: UseRow;
3939
4678
  useScreen: (screenId: string | null) => Screen_2 | null;
4679
+ useCustomAppHistory: () => HistoryContextData;
3940
4680
  };
3941
4681
 
3942
4682
  /**
@@ -4225,9 +4965,9 @@ export declare type TriggerType = 'scheduled' | 'manual';
4225
4965
  /**
4226
4966
  * @public
4227
4967
  */
4228
- export declare type TvAppProps = {
4968
+ export declare interface TvAppProps {
4229
4969
  customer: CustomerId;
4230
- };
4970
+ }
4231
4971
 
4232
4972
  /**
4233
4973
  * @public
@@ -4261,6 +5001,19 @@ export declare interface TvChannel extends RowItem {
4261
5001
  type?: TvChannelType;
4262
5002
  }
4263
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
+
4264
5017
  export declare enum TvChannelType {
4265
5018
  /**
4266
5019
  * Classic live tv channel
@@ -4330,6 +5083,8 @@ export declare enum TvStreamType {
4330
5083
  */
4331
5084
  export declare const TvTivioProvider: React_2.FC<TivioProviderProps>;
4332
5085
 
5086
+ export declare type UpsertCommentResponse = AddEditCommentResponse | DeleteCommentResponse;
5087
+
4333
5088
  /**
4334
5089
  * @public
4335
5090
  */
@@ -4414,6 +5169,41 @@ export declare const useChannelSource: (tvChannelId: string) => {
4414
5169
  source: null;
4415
5170
  };
4416
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
+
4417
5207
  /**
4418
5208
  * @public
4419
5209
  */
@@ -4476,7 +5266,7 @@ export declare const useIsMonetizationPurchased: () => {
4476
5266
  * @public
4477
5267
  */
4478
5268
  export declare const useItemsInRow: (rowId?: string, options?: SubscribeToItemsInRowOptions) => {
4479
- pagination: PaginationInterface<ItemsInRow> | null;
5269
+ pagination: PaginationInterface<ItemInRow> | null;
4480
5270
  error: Error | null;
4481
5271
  };
4482
5272
 
@@ -4536,6 +5326,7 @@ export declare type User = {
4536
5326
  * Returns all PAID or CANCELLED user purchases (expired and non-expired)
4537
5327
  */
4538
5328
  allPurchases: Purchase[];
5329
+ availablePromotionsIds: string[];
4539
5330
  /**
4540
5331
  * Returns "active" (not CANCELLED) VoD purchases ("transaction" type)
4541
5332
  */
@@ -4549,6 +5340,7 @@ export declare type User = {
4549
5340
  */
4550
5341
  extendableSubscription?: Purchase;
4551
5342
  getPurchasedVideos: () => Video[];
5343
+ getOneTimePurchases: () => Purchase[];
4552
5344
  isPurchasesInitialized: boolean;
4553
5345
  isSignedIn: boolean;
4554
5346
  isReady: boolean;
@@ -4562,14 +5354,41 @@ export declare type User = {
4562
5354
  authUserId?: string;
4563
5355
  favorites: any[];
4564
5356
  watchedPositions: any[];
5357
+ watchHistory: any[];
4565
5358
  profiles: any[];
4566
5359
  activeUserProfileId: string | null;
4567
5360
  patreon?: PatreonUserAuth;
5361
+ subscriptionIdsToShow: string[] | null;
5362
+ followedOrganizationIds: string[];
5363
+ isAnonymous: boolean;
5364
+ isDiscordConnected: boolean;
4568
5365
  createUserProfile: (request: any) => Promise<void>;
4569
5366
  deleteUserProfile: (profileId: string) => Promise<void>;
4570
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;
4571
5380
  };
4572
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
+
4573
5392
  export declare enum UserGroup {
4574
5393
  ALL = "all",
4575
5394
  FREE = "free",
@@ -4726,7 +5545,7 @@ export declare const useVoucher: (voucherId: string) => {
4726
5545
  voucher: Voucher | null;
4727
5546
  /**
4728
5547
  * You can check error.details if you need to know error type when you want your own error messages
4729
- * (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").
4730
5549
  */
4731
5550
  error: Error | BadRequestError | null;
4732
5551
  /**
@@ -4790,7 +5609,7 @@ export declare interface verifyCustomTokenProps {
4790
5609
  /**
4791
5610
  * @public
4792
5611
  */
4793
- export declare interface Video extends RowItem {
5612
+ export declare interface Video extends RowItem, MonetizableItem, ReactableContent {
4794
5613
  id: string;
4795
5614
  itemType: ROW_ITEM_TYPES.VIDEO;
4796
5615
  /**
@@ -4799,35 +5618,31 @@ export declare interface Video extends RowItem {
4799
5618
  cover: string | null;
4800
5619
  sectionId: string | null;
4801
5620
  channelId: string | null;
4802
- /**
4803
- * seconds
4804
- */
4805
5621
  duration: number;
4806
5622
  path: string;
4807
5623
  tags: Tag[];
4808
5624
  image: string | null;
4809
5625
  isPlayable: boolean;
4810
5626
  monetizations: Monetization[];
4811
- /**
4812
- * Returns all transactions and subscriptions applied to this video.
4813
- * Transactions before subscriptions, sorted by price ascending.
4814
- */
4815
- getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
4816
5627
  getSourceUrl(options?: {
4817
5628
  language?: LangCode;
4818
5629
  }): Promise<GetSourceUrlResponse & {
4819
5630
  language?: LangCode;
4820
5631
  }>;
4821
- getSeekingMatrixPreviewByTime(timeMs: number, offsetIndex: number): {
5632
+ getSeekingMatrixPreviewByTime(timeMs: number, offsetIndex?: number): {
4822
5633
  url: string;
4823
5634
  x: number;
4824
5635
  y: number;
5636
+ width: number;
5637
+ height: number;
5638
+ interval: number;
4825
5639
  timeMs: number;
4826
5640
  } | null;
4827
5641
  purchasableMonetization: any | null;
4828
5642
  transaction: PurchasableMonetization | undefined;
4829
5643
  subscriptions: PurchasableMonetization[];
4830
5644
  sources?: any[];
5645
+ allSources?: any[];
4831
5646
  isPlaylist: boolean;
4832
5647
  name: string;
4833
5648
  urlNames?: string[];
@@ -4839,34 +5654,38 @@ export declare interface Video extends RowItem {
4839
5654
  from?: Date;
4840
5655
  to?: Date;
4841
5656
  detailBanner?: string;
4842
- linkedVideosRaw: any[];
4843
- linkedVideos: LinkedVideo[];
5657
+ descriptionRich?: string;
5658
+ organizationId?: string;
5659
+ linkedVideosRaw: LinkedVideoRaw[] | undefined;
5660
+ linkedVideos: LinkedVideo[] | undefined;
5661
+ pipPaths?: string[];
4844
5662
  contentType: VideoContentType | null;
4845
5663
  year?: number;
4846
5664
  episodeNumber?: number;
4847
5665
  seasonNumber?: number;
4848
5666
  getTagsOfType: (type: string) => Tag[];
5667
+ geoBlocking: GeoBlocking | undefined;
4849
5668
  loadLinkedVideos: () => any;
4850
5669
  getLinkedVideos: (type: any) => any;
4851
5670
  trailer: Video | null;
5671
+ teaser: Video | null;
5672
+ hasTasting: boolean;
5673
+ isTastingValid: () => boolean;
5674
+ tasting: Video | null;
4852
5675
  watchPosition: number | null;
4853
5676
  isFavorite: boolean;
4854
5677
  addToFavorites: () => void;
4855
5678
  removeFromFavorites: () => void;
4856
- availability: VideoAvailability | null;
5679
+ availability: ContentAvailability | null;
4857
5680
  sourceLanguages: LangCode[];
4858
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>;
4859
5687
  }
4860
5688
 
4861
- /**
4862
- * @public
4863
- */
4864
- export declare type VideoAvailability = {
4865
- from: Date;
4866
- to: Date | null;
4867
- manual: boolean;
4868
- };
4869
-
4870
5689
  /**
4871
5690
  * @public
4872
5691
  */
@@ -4900,6 +5719,25 @@ export declare enum VideoSourceEncryption {
4900
5719
  PLAYREADY = "playready"
4901
5720
  }
4902
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
+
4903
5741
  /**
4904
5742
  * Lower number = higher priority.
4905
5743
  */
@@ -4911,6 +5749,37 @@ export declare enum VideoSourceProtocol {
4911
5749
  MP4 = "mp4"
4912
5750
  }
4913
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
+
4914
5783
  /**
4915
5784
  * Video type.
4916
5785
  * @public
@@ -4932,11 +5801,20 @@ export declare enum VideoType {
4932
5801
  * Part of video original video like TRAILER.
4933
5802
  */
4934
5803
  TRAILER = "TRAILER",
5804
+ /**
5805
+ * Timeshift.
5806
+ */
4935
5807
  TV_PROGRAM = "TV_PROGRAM",
4936
5808
  /**
4937
5809
  * Video object represents whole series, e.g. tv show.
4938
5810
  */
4939
- 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"
4940
5818
  }
4941
5819
 
4942
5820
  /**
@@ -5025,7 +5903,7 @@ export declare interface VodTivioSourceInterface extends PlayerSourceInterface<S
5025
5903
  watermark: Watermark | null;
5026
5904
  canWatchOnDevice: boolean;
5027
5905
  isAvailable: boolean;
5028
- availability: VideoAvailability | null;
5906
+ availability: ContentAvailability | null;
5029
5907
  video: Video;
5030
5908
  clone: (params?: Partial<VodTivioSourceParams>) => VodTivioSourceInterface;
5031
5909
  }
@@ -5038,6 +5916,7 @@ export declare interface VodTivioSourceParams extends PlayerSourceParams<SourceT
5038
5916
  adMonetizationId?: string;
5039
5917
  language?: LangCode;
5040
5918
  drm?: Drm;
5919
+ ignoreWatchPosition?: boolean;
5041
5920
  }
5042
5921
 
5043
5922
  /**
@@ -5058,6 +5937,7 @@ export declare interface WarningConfirmationOverlayPayload extends ConfirmationO
5058
5937
  type: 'warning';
5059
5938
  confirmButtonText?: string;
5060
5939
  closeButtonText?: string;
5940
+ subscriptionExpirationText?: string;
5061
5941
  }
5062
5942
 
5063
5943
  /**
@@ -5068,16 +5948,216 @@ export declare interface Watermark {
5068
5948
  size: 'large' | 'medium';
5069
5949
  }
5070
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
+
5071
6151
  /**
5072
6152
  * @public
5073
6153
  */
5074
- export declare type WebGridScreenProps = {
6154
+ export declare interface WebGridScreenProps {
5075
6155
  screen?: Screen_2;
5076
6156
  seriesId?: string;
5077
6157
  season?: number;
5078
6158
  rowId?: string;
5079
6159
  videoId?: string;
5080
- };
6160
+ }
5081
6161
 
5082
6162
  /**
5083
6163
  * @public
@@ -5086,6 +6166,10 @@ export declare interface WebPlayerProps {
5086
6166
  id: string;
5087
6167
  source?: SourceParams | VideoPath | ChannelPath | null;
5088
6168
  onEnded?: () => any;
6169
+ /**
6170
+ * If true, the player will inherit the width and height of its parent element.
6171
+ */
6172
+ isSameSizeAsParent?: boolean;
5089
6173
  /**
5090
6174
  * If this function is specified, then "Back" button is shown in top right corner.
5091
6175
  */
@@ -5166,25 +6250,58 @@ export declare interface WebPlayerProps {
5166
6250
  * If true, it does not play the next video when the current video reaches the end.
5167
6251
  */
5168
6252
  disablePlayNext?: boolean;
6253
+ setPaymentOverlayVisible?: React_2.Dispatch<React_2.SetStateAction<boolean>>;
5169
6254
  }
5170
6255
 
5171
6256
  /**
5172
6257
  * @public
5173
6258
  */
5174
- export declare type WebRowProps = {
5175
- items?: ItemsInRow[];
6259
+ export declare interface WebProfileScreenProps {
6260
+ onLogout: () => void;
6261
+ }
6262
+
6263
+ /**
6264
+ * @public
6265
+ */
6266
+ export declare interface WebRowProps {
6267
+ items?: ItemInRow[];
5176
6268
  variant?: RowItemComponent;
5177
6269
  rowName?: string | any;
5178
6270
  fetchMore?: () => void;
5179
- onTileClick?: (item?: ItemsInRow | null) => void;
5180
- };
6271
+ onTileClick?: (item?: ItemInRow | null) => void;
6272
+ }
5181
6273
 
5182
6274
  /**
5183
6275
  * @public
5184
6276
  */
5185
- export declare type WebSeriesDetailScreenProps = {
6277
+ export declare interface WebSeriesDetailScreenProps {
5186
6278
  tagId: string;
5187
- };
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
+ }
5188
6305
 
5189
6306
  /**
5190
6307
  * @public