@tivio/sdk-react 9.1.0-alpha.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
@@ -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