@tivio/sdk-react 4.4.1 → 5.0.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,5 +1,6 @@
1
1
  import { ComponentType } from 'react';
2
2
  import { FunctionComponentElement } from 'react';
3
+ import { OperatingSystem } from 'detect-browser';
3
4
  import { default as React_2 } from 'react';
4
5
 
5
6
  /**
@@ -129,6 +130,15 @@ declare type AdSource_2 = SourceBase & {
129
130
  type: 'ad';
130
131
  };
131
132
 
133
+ /**
134
+ * @public
135
+ */
136
+ export declare interface Advertisement extends RowItem {
137
+ id: string;
138
+ itemType: ROW_ITEM_TYPES.ADVERTISEMENT;
139
+ type?: string | null;
140
+ }
141
+
132
142
  /**
133
143
  * @public
134
144
  */
@@ -140,6 +150,63 @@ export declare enum ALGOLIA_INDEX_NAME {
140
150
  USERS = "users"
141
151
  }
142
152
 
153
+ /**
154
+ * List of conversion types that we send to analytics.
155
+ */
156
+ export declare enum AnalyticsConversionName {
157
+ CLICK = "click",
158
+ PLAY = "play",
159
+ PURCHASE = "purchase",
160
+ VISIT = "visit"
161
+ }
162
+
163
+ /**
164
+ * Map of Tivio targets in our apps.
165
+ * Values are based on url paths and rewrites from firebase.json
166
+ */
167
+ export declare enum AnalyticsConversionPage {
168
+ Videos = "videos",
169
+ Series = "series",
170
+ Profile = "profile",
171
+ Tags = "tags",
172
+ Screens = "screens",
173
+ Registration = "registration",
174
+ Login = "login",
175
+ About = "about",
176
+ ResetPassword = "reset-password",
177
+ Player = "player",
178
+ Redeem = "redeem",
179
+ Referral = "referral",
180
+ Pair = "pair",
181
+ Search = "search"
182
+ }
183
+
184
+ /**
185
+ * For conversion purchases
186
+ */
187
+ export declare enum AnalyticsConversionStatus {
188
+ SUCCESS = "SUCCESS",
189
+ FAILED = "FAILED"
190
+ }
191
+
192
+ export declare type AnalyticsConversionTarget = AnalyticsConversionTargetBase | AnalyticsConversionPage;
193
+
194
+ export declare enum AnalyticsConversionTargetBase {
195
+ Element = "element",
196
+ Monetization = "monetization"
197
+ }
198
+
199
+ export declare interface AnalyticsInterface {
200
+ reportAdvertisementPlay: () => void;
201
+ reportAdvertisementProgress: () => void;
202
+ reportElementClick: (elementId: string) => void;
203
+ reportLocationChange: (path: string, pathParam?: string) => void;
204
+ createMonetizationPurchase: () => void;
205
+ completeMonetizationPurchase: (status: AnalyticsConversionStatus, monetizationId?: string) => void;
206
+ reportVideoPlay: (status: AnalyticsConversionStatus, videoId: string) => void;
207
+ reportVideoProgress: (videoId: string, videoDuration: number, checkpoint: number) => void;
208
+ }
209
+
143
210
  /**
144
211
  * @public
145
212
  */
@@ -201,7 +268,6 @@ export declare type BannerProps = {
201
268
  focused: boolean;
202
269
  onClick?: () => void;
203
270
  hoverable: boolean;
204
- broadcastInfo: string;
205
271
  height: number;
206
272
  cover: string;
207
273
  overlay: boolean;
@@ -209,6 +275,7 @@ export declare type BannerProps = {
209
275
  borderRadius?: string | number;
210
276
  buttonText?: string;
211
277
  onButtonClick?: () => void;
278
+ numberOfLines?: number;
212
279
  };
213
280
 
214
281
  /**
@@ -324,6 +391,107 @@ export declare type Components = {
324
391
  */
325
392
  export declare type Config = SdkReactConfig;
326
393
 
394
+ /**
395
+ * @public
396
+ */
397
+ export declare interface ConfirmationOverlayContextState {
398
+ isOpen: boolean;
399
+ payload: ConfirmationOverlayPayload | null;
400
+ closeOverlay: () => void;
401
+ openOverlay: (payload: ConfirmationOverlayPayload) => void;
402
+ confirmAction: () => void;
403
+ }
404
+
405
+ /**
406
+ * @public
407
+ */
408
+ export declare type ConfirmationOverlayPayload = SuccessConfirmationOverlayPayload | WarningConfirmationOverlayPayload;
409
+
410
+ /**
411
+ * @public
412
+ */
413
+ export declare interface ConfirmationOverlayPayloadBase {
414
+ title?: string;
415
+ caption?: string;
416
+ onClose?: () => void;
417
+ onConfirm?: () => void;
418
+ /**
419
+ * If configured, then overlay is automatically confirmed after this time.
420
+ */
421
+ automaticConfirmDelayMs?: number;
422
+ }
423
+
424
+ /**
425
+ * Entity aggregate conversion statistics per day
426
+ */
427
+ export declare interface ConversionAnalytic {
428
+ /**
429
+ * Unix timestamp
430
+ */
431
+ date: number;
432
+ type: AnalyticsConversionName;
433
+ statistics: ConversionsItem[];
434
+ }
435
+
436
+ export declare interface ConversionsItem {
437
+ technology: PLATFORM;
438
+ os: DeviceOs;
439
+ osVersion: string;
440
+ details: {
441
+ /**
442
+ * Count of conversion with Success state
443
+ */
444
+ successCount: number;
445
+ /**
446
+ * Count of all conversion regardless of status
447
+ */
448
+ totalCount: number;
449
+ targets: ConversionsTargetItem[];
450
+ };
451
+ }
452
+
453
+ /**
454
+ * Entity with statistics conversion for url
455
+ */
456
+ export declare interface ConversionsTargetItem {
457
+ /**
458
+ * Target id represent different values for every conversion.
459
+ * e.g. for visit conversion on video page saving videoId
460
+ * e.g. for visit conversion on profile page not saving anything
461
+ * e.g. for purchase conversion save monetizationId when user select specific monetization
462
+ * e.g. for purchase conversion not save anything when user leave monetization before select
463
+ * e.g. for click conversion save elementId
464
+ */
465
+ targetId: string;
466
+ /**
467
+ * Target type represent different values for every conversion.
468
+ * e.g. for visit conversion show current path
469
+ * e.g. for purchase conversion is every time monetization
470
+ * e.g. for click conversion is every time element
471
+ */
472
+ targetType: AnalyticsConversionTarget;
473
+ /**
474
+ * Path is page of conversion
475
+ * e.g. for visit conversion represent previews page
476
+ * e.g. for purchase conversion is page where purchase happened
477
+ * e.g. for click conversion is page where click happened
478
+ */
479
+ path: string;
480
+ /**
481
+ * Path param is param from url of conversion (e.g. video page -> videoId, profile page -> unknown)
482
+ * e.g. for visit conversion represent parameters previews page
483
+ * e.g. for purchase conversion where purchase happened
484
+ * e.g. for click conversion where click happened
485
+ */
486
+ pathParam: string | undefined;
487
+ /** Count of conversion with Success state on specific page */
488
+ successCount: number;
489
+ /**
490
+ * Count of all conversion regardless of status on specific page
491
+ */
492
+ totalCount: number;
493
+ }
494
+
327
495
  /**
328
496
  * @public
329
497
  * @TODO move somewhere else
@@ -370,14 +538,20 @@ export declare type Currency = 'CZK' | 'EUR' | 'USD';
370
538
  /**
371
539
  * @public
372
540
  */
373
- export declare enum CUSTOMER_BUILD {
541
+ export declare enum CustomerId {
374
542
  OKTAGON = "OKTAGON",
375
543
  JOJ = "JOJ",
376
544
  MALL = "MALL",
377
545
  GARAZ = "GARAZ",
378
546
  U_KULATEHO_STOLU = "U_KULATEHO_STOLU",
379
547
  INVESTOREES = "INVESTOREES",
380
- DVTV = "DVTV"
548
+ DVTV = "DVTV",
549
+ DVTV_DEV = "DVTV_DEV",
550
+ O2 = "O2",
551
+ GRAPE = "GRAPE",
552
+ TIVIO = "TIVIO",
553
+ STORYBOOK = "STORYBOOK",
554
+ NANGU_DEV = "NANGU_DEV"
381
555
  }
382
556
 
383
557
  /**
@@ -528,6 +702,11 @@ export declare type DetailedPrice = {
528
702
  */
529
703
  export declare type DeviceInfo = ArrisDeviceInfo | ReactNativeDeviceInfo;
530
704
 
705
+ /**
706
+ * @public
707
+ */
708
+ export declare type DeviceOs = OperatingSystem | 'Tizen' | 'webOS' | 'Arris' | 'Android TV' | 'tvOS';
709
+
531
710
  /**
532
711
  * @public
533
712
  */
@@ -593,6 +772,7 @@ export declare type Events = {
593
772
  */
594
773
  export declare type ExternalTvConfig = {
595
774
  logo: string;
775
+ splashScreenBackgroundColor?: string;
596
776
  };
597
777
 
598
778
  /**
@@ -608,12 +788,32 @@ export declare const fetchBundle: (secret: string, conf: InternalConfig) => Prom
608
788
  declare type FetchPackage = (url: string) => Promise<string>;
609
789
 
610
790
  /**
791
+ * Counterpart for {@link ForbiddenError} from @tivio/api.
792
+ * @public
793
+ */
794
+ export declare interface ForbiddenOnCallError extends GenericOnCallError {
795
+ code: 'permission-denied';
796
+ details?: {
797
+ reason: ForbiddenReason;
798
+ };
799
+ }
800
+
801
+ export declare enum ForbiddenReason {
802
+ MONETIZATION = "MONETIZATION",
803
+ GEO_BLOCKING = "GEO_BLOCKING"
804
+ }
805
+
806
+ /**
807
+ * On call error interface for front-end.
808
+ * Do not use it / throw it from @tivio/api.
611
809
  * @public
612
810
  */
613
- export declare interface GenericOnCallError {
614
- code: string;
615
- message?: string;
616
- details?: string[];
811
+ export declare interface GenericOnCallError extends Error {
812
+ /**
813
+ * Based on {@link FunctionsErrorCode} from firebase-functions.
814
+ */
815
+ code: 'ok' | 'cancelled' | 'unknown' | 'invalid-argument' | 'deadline-exceeded' | 'not-found' | 'already-exists' | 'permission-denied' | 'resource-exhausted' | 'failed-precondition' | 'aborted' | 'out-of-range' | 'unimplemented' | 'internal' | 'unavailable' | 'data-loss' | 'unauthenticated';
816
+ details?: Record<string, string>;
617
817
  }
618
818
 
619
819
  /**
@@ -644,6 +844,57 @@ export declare type GetPurchaseInfoResponse = {
644
844
  };
645
845
  };
646
846
 
847
+ export declare interface GetSourceUrlRequest {
848
+ /**
849
+ * Id of the document to return source for.
850
+ */
851
+ id: string;
852
+ /**
853
+ * Type of the document to return source for.
854
+ */
855
+ documentType: 'video' | 'tvChannel';
856
+ /**
857
+ * Which capabilities should the resulting source support.
858
+ */
859
+ capabilities: PlayerCapability[];
860
+ /**
861
+ * Which language the resulting source should support.
862
+ * If not present, language is not taken into consideration when picking the resulting source.
863
+ */
864
+ language?: LangCode;
865
+ /**
866
+ * Which sources did client (or cloud function) has already tried out.
867
+ */
868
+ sourceHistory?: string[];
869
+ /**
870
+ * When set to true the function will return urls with unsecured http protocol.
871
+ * We need this because some devices in certain circumstances are not able to use https.
872
+ *
873
+ * e.g. On LG it is not possible to use HTTPS certificates with root authority
874
+ * `Let's Encrypt` (for more info see https://jira.nangu.tv/browse/TIV-1047),
875
+ * which is used on cdn3.tiv.io domain.
876
+ *
877
+ * Switching this urls to http is a workaround for these cases.
878
+ */
879
+ preferHttp?: boolean;
880
+ /**
881
+ * If set to true, sources on the document will be skipped and function will try to
882
+ * construct sources based on source domains right away.
883
+ */
884
+ ignoreDocumentSources?: boolean;
885
+ }
886
+
887
+ export declare interface GetSourceUrlResponse {
888
+ /**
889
+ * The resulting source url.
890
+ */
891
+ url: string;
892
+ /**
893
+ * Which sources did client (or cloud function) has already tried out.
894
+ */
895
+ sourceHistory: string[];
896
+ }
897
+
647
898
  /**
648
899
  * @public
649
900
  */
@@ -690,9 +941,10 @@ export declare interface IndexedUser extends IndexedObject {
690
941
  * @public
691
942
  */
692
943
  export declare interface IndexedVideo extends IndexedObject {
693
- organizationPath?: string;
944
+ assets: any;
945
+ organizationPath: string;
694
946
  tagPaths?: string[];
695
- created: Date;
947
+ created: Date | string;
696
948
  isDraft: boolean;
697
949
  type: VideoType;
698
950
  contentType?: VideoContentType;
@@ -762,7 +1014,7 @@ export declare type ItemComponent = RowItemComponent | BannerItemComponent;
762
1014
  /**
763
1015
  * @public
764
1016
  */
765
- export declare type ItemsInRow = Tag | Video | TvChannel;
1017
+ export declare type ItemsInRow = Tag | Video | TvChannel | Advertisement;
766
1018
 
767
1019
  /**
768
1020
  * @public
@@ -880,6 +1132,11 @@ declare interface Logger {
880
1132
  */
881
1133
  declare type LoggerArgs = any[];
882
1134
 
1135
+ export declare enum LoginRedirect {
1136
+ PAYMENT = "payment",
1137
+ VOUCHER = "voucher"
1138
+ }
1139
+
883
1140
  /**
884
1141
  * @public
885
1142
  */
@@ -902,6 +1159,14 @@ export declare interface Marker {
902
1159
  type: 'AD' | 'AD_SEGMENT' | 'START' | 'END' | 'INTRO';
903
1160
  }
904
1161
 
1162
+ /**
1163
+ * @public
1164
+ */
1165
+ export declare type MarkersProps = {
1166
+ color?: string;
1167
+ className?: string;
1168
+ };
1169
+
905
1170
  /**
906
1171
  * External information of video migrated via our Public API.
907
1172
  * @public
@@ -933,6 +1198,14 @@ export declare enum MONETIZATION_FREQUENCY {
933
1198
  ANNUALLY = "ANNUALLY"
934
1199
  }
935
1200
 
1201
+ /**
1202
+ * @public
1203
+ */
1204
+ export declare interface MonetizationActions {
1205
+ selectMonetization: (monetization: PurchasableMonetization) => void;
1206
+ errors: string[];
1207
+ }
1208
+
936
1209
  /**
937
1210
  * @public
938
1211
  */
@@ -959,6 +1232,7 @@ export declare interface MonetizationsSelectOverlayData {
959
1232
  * Otherwise, user is making a purchase for himself.
960
1233
  */
961
1234
  voucherPurchase?: boolean;
1235
+ registrationRedirect?: boolean;
962
1236
  onPurchase?: () => void;
963
1237
  onClose?: () => void;
964
1238
  }
@@ -967,9 +1241,10 @@ export declare interface MonetizationsSelectOverlayData {
967
1241
  * @public
968
1242
  */
969
1243
  export declare type MonetizationsSelectOverlayState = {
1244
+ isOpen: boolean;
970
1245
  data: MonetizationsSelectOverlayData | null;
971
- closeMonetizationsSelectOverlay: () => void;
972
1246
  openMonetizationsSelectOverlay: (data: MonetizationsSelectOverlayData) => void;
1247
+ closeMonetizationsSelectOverlay: () => void;
973
1248
  };
974
1249
 
975
1250
  /**
@@ -1041,6 +1316,7 @@ declare type OrderByDirection = 'desc' | 'asc';
1041
1316
  * @public
1042
1317
  */
1043
1318
  export declare interface Organization {
1319
+ userProfileConfiguration: any;
1044
1320
  }
1045
1321
 
1046
1322
  /**
@@ -1069,12 +1345,16 @@ export declare type PaginationInterface<Entity> = {
1069
1345
  export declare type PaginationOptions = Partial<{
1070
1346
  limit: number;
1071
1347
  noLimit: boolean;
1348
+ noAutoFetch: boolean;
1072
1349
  }>;
1073
1350
 
1074
1351
  /**
1075
1352
  * @public
1076
1353
  */
1077
1354
  export declare enum PLATFORM {
1355
+ /**
1356
+ * Includes tablets.
1357
+ */
1078
1358
  MOBILE = "MOBILE",
1079
1359
  WEB = "WEB",
1080
1360
  TV = "TV"
@@ -1454,6 +1734,14 @@ export declare type PurchaseEndpointPayload = {
1454
1734
  * True if delayed payment is confirmed but not charged yet, undefined in all other cases.
1455
1735
  */
1456
1736
  isDelayedPayment?: boolean;
1737
+ /**
1738
+ * Purchase status before change.
1739
+ */
1740
+ previousStatus: PurchaseStatus;
1741
+ /**
1742
+ * Purchase status after change.
1743
+ */
1744
+ newStatus: PurchaseStatus;
1457
1745
  };
1458
1746
  /**
1459
1747
  * Information about the monetization which has been bought by this purchase. Monetization definition may change in time so information provided here
@@ -1667,8 +1955,13 @@ export declare type ReactNativeDeviceInfo = {
1667
1955
  os?: 'iOS' | 'Android OS';
1668
1956
  osVersion: string;
1669
1957
  platform: PLATFORM;
1958
+ isTablet?: boolean;
1670
1959
  };
1671
1960
 
1961
+ export declare enum RegistrationRedirect {
1962
+ PAYMENT = "payment"
1963
+ }
1964
+
1672
1965
  /**
1673
1966
  * @public
1674
1967
  */
@@ -1684,7 +1977,7 @@ export declare type RemoteBundleState = {
1684
1977
  export declare type RemoteProviderProps = {
1685
1978
  disableUnmounting?: boolean;
1686
1979
  language?: LangCode;
1687
- children: any;
1980
+ children: React_2.ReactNode;
1688
1981
  };
1689
1982
 
1690
1983
  /**
@@ -1700,15 +1993,29 @@ export declare type RequiredNullable<T> = {
1700
1993
  * @public
1701
1994
  */
1702
1995
  export declare interface RouterOverrides {
1996
+ getVideoDetailPath: (videoIdOrUrlName: string) => string;
1997
+ getSeriesDetailPath: (tagId: string) => string;
1998
+ getTagPath: (tagId: string) => string;
1999
+ getLoginPath: () => string;
2000
+ getRegistrationPath: () => string;
2001
+ getLivePlayerPath: (tvChannelId: string) => string;
2002
+ getVodPlayerPath: (videoIdOrUrlName: string) => string;
2003
+ getHomePath: (screens: ScreenConfig[]) => string;
1703
2004
  goToVideoDetailPage: (videoIdOrUrlName: string) => void;
1704
2005
  goToSeriesDetailPage: (tagId: string) => void;
1705
2006
  goToTagPage: (tagId: string) => void;
1706
- goToLoginPage: () => void;
1707
- goToRegistrationPage: () => void;
2007
+ goToLoginPage: (options?: {
2008
+ manual?: boolean;
2009
+ origin?: LoginRedirect;
2010
+ }) => void;
2011
+ goToRegistrationPage: (options?: {
2012
+ origin?: RegistrationRedirect;
2013
+ }) => void;
1708
2014
  goBack: () => void;
1709
2015
  goLivePlayer: (tvChannelId: string) => void;
1710
2016
  goVodPlayer: (videoIdOrUrlName: string) => void;
1711
- goToHome: () => void;
2017
+ goToHome: (user?: any, activeUserProfileId?: string) => void;
2018
+ goToRoute: (route: string) => void;
1712
2019
  }
1713
2020
 
1714
2021
  /**
@@ -1716,6 +2023,10 @@ export declare interface RouterOverrides {
1716
2023
  */
1717
2024
  export declare interface RouterOverridesContextState {
1718
2025
  routerOverrides: RouterOverrides;
2026
+ Link: React_2.ComponentType<{
2027
+ children?: React_2.ReactNode;
2028
+ href?: string;
2029
+ }>;
1719
2030
  }
1720
2031
 
1721
2032
  /**
@@ -1729,7 +2040,8 @@ export declare type Row = RowStandard | RowBanner;
1729
2040
  export declare enum ROW_ITEM_TYPES {
1730
2041
  VIDEO = "VIDEO",
1731
2042
  TAG = "TAG",
1732
- TV_CHANNEL = "TV_CHANNEL"
2043
+ TV_CHANNEL = "TV_CHANNEL",
2044
+ ADVERTISEMENT = "ADVERTISEMENT"
1733
2045
  }
1734
2046
 
1735
2047
  /**
@@ -1751,6 +2063,7 @@ declare interface RowBase {
1751
2063
  assets: Assets;
1752
2064
  type: ScreenRowType;
1753
2065
  isLiveRow: boolean;
2066
+ numberOfLines?: number;
1754
2067
  }
1755
2068
 
1756
2069
  /**
@@ -1789,7 +2102,8 @@ export declare interface RowItemAssets {
1789
2102
  export declare enum RowItemComponent {
1790
2103
  ROW_ITEM_PORTRAIT = "ROW_ITEM_PORTRAIT",
1791
2104
  ROW_ITEM_LANDSCAPE = "ROW_ITEM_LANDSCAPE",
1792
- ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED"
2105
+ ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED",
2106
+ ROW_ITEM_BANNER = "ROW_ITEM_BANNER"
1793
2107
  }
1794
2108
 
1795
2109
  /**
@@ -1846,6 +2160,11 @@ export { Screen_2 as Screen }
1846
2160
  export declare type ScreenConfig = {
1847
2161
  id: string;
1848
2162
  name: string;
2163
+ route?: string;
2164
+ showForUserProfileType?: {
2165
+ kids: boolean;
2166
+ adults: boolean;
2167
+ };
1849
2168
  };
1850
2169
 
1851
2170
  /**
@@ -1859,7 +2178,7 @@ export declare type ScreenOptions = Partial<{
1859
2178
  /**
1860
2179
  * @public
1861
2180
  */
1862
- export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites';
2181
+ export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched';
1863
2182
 
1864
2183
  /**
1865
2184
  * Listen to screen data
@@ -1925,7 +2244,7 @@ export declare interface SettingsItem {
1925
2244
  * Sign out - setUser(null)
1926
2245
  * @public
1927
2246
  */
1928
- export declare const setUser: (userId: string | null, payload?: UserPayload | undefined) => Promise<void>;
2247
+ export declare const setUser: (userId: string | null, payload?: UserPayload) => Promise<void>;
1929
2248
 
1930
2249
  /**
1931
2250
  * @public
@@ -2033,11 +2352,20 @@ declare type SubscriptionInfo = {
2033
2352
  frequency: string;
2034
2353
  };
2035
2354
 
2355
+ /**
2356
+ * @public
2357
+ */
2358
+ export declare interface SuccessConfirmationOverlayPayload extends ConfirmationOverlayPayloadBase {
2359
+ type: 'success';
2360
+ confirmButtonText?: string;
2361
+ }
2362
+
2036
2363
  /**
2037
2364
  * @public
2038
2365
  */
2039
2366
  export declare interface Tag extends RowItem {
2040
2367
  id: string;
2368
+ itemType: ROW_ITEM_TYPES.TAG;
2041
2369
  tagId: string;
2042
2370
  type?: string | null;
2043
2371
  metadata?: any[];
@@ -2097,10 +2425,10 @@ export declare type TileOptions = {
2097
2425
  * @public
2098
2426
  */
2099
2427
  export declare type TileProps = {
2428
+ children?: React_2.ReactNode;
2100
2429
  cover: string;
2101
2430
  bottomLabel: string;
2102
2431
  bottomLabelAreaHeight: number;
2103
- bottomLabelTextLinesCount: number;
2104
2432
  innerLabel: string;
2105
2433
  duration: string;
2106
2434
  price: string | null;
@@ -2120,6 +2448,7 @@ export declare type TileProps = {
2120
2448
  */
2121
2449
  containerMargin?: number | string;
2122
2450
  created?: Date;
2451
+ numberOfLines?: number;
2123
2452
  };
2124
2453
 
2125
2454
  /**
@@ -2159,6 +2488,13 @@ export declare type TileSizesMap = {
2159
2488
  */
2160
2489
  export declare type TileSizeVariant = 'default' | 'mobile';
2161
2490
 
2491
+ /**
2492
+ * @public
2493
+ */
2494
+ export declare type TivioAnalytics = {
2495
+ analytics: AnalyticsInterface;
2496
+ };
2497
+
2162
2498
  /**
2163
2499
  * @public
2164
2500
  */
@@ -2198,8 +2534,10 @@ export declare type TivioBundleFile = {
2198
2534
  * @public
2199
2535
  */
2200
2536
  export declare type TivioComponents = {
2201
- Markers: React_2.ReactNode;
2202
- PlayerDataContext: React_2.ReactNode;
2537
+ Markers: React_2.ComponentType<MarkersProps>;
2538
+ PlayerDataContext: React_2.Context<{
2539
+ player: any | null;
2540
+ }>;
2203
2541
  Provider: React_2.ComponentType<RemoteProviderProps>;
2204
2542
  WebPlayer: React_2.ComponentType<WebPlayerProps>;
2205
2543
  Widget: React_2.ComponentType<TivioWidgetProps>;
@@ -2255,7 +2593,8 @@ export declare interface TivioConfig {
2255
2593
  language: LangCode;
2256
2594
  debug?: boolean;
2257
2595
  verbose?: boolean;
2258
- firebaseApp?: any;
2596
+ firebaseApp?: any | null;
2597
+ firestore?: any | null;
2259
2598
  currency: Currency;
2260
2599
  /**
2261
2600
  * Configuration for GDPR consent collection (CMP)
@@ -2267,6 +2606,13 @@ export declare interface TivioConfig {
2267
2606
  */
2268
2607
  deviceInfo?: DeviceInfo;
2269
2608
  player?: PlayerConfig;
2609
+ /**
2610
+ * Used for purposes where we need to differentiate organizations before it is known based on secret and data from DB.
2611
+ *
2612
+ * At this time it is necessary only for LG builds because on LG TVs it is needed to separate apps indexedDB storages
2613
+ * (otherwise organizations would share login token).
2614
+ */
2615
+ customerId?: CustomerId;
2270
2616
  }
2271
2617
 
2272
2618
  /**
@@ -2346,6 +2692,7 @@ export declare type TivioHooks = {
2346
2692
  applyInviteCode: (code: string) => void;
2347
2693
  inviteCodeReset: () => void;
2348
2694
  };
2695
+ useChannelSource: UseChannelSource;
2349
2696
  };
2350
2697
 
2351
2698
  /**
@@ -2369,6 +2716,10 @@ export declare type TivioInternalComponents = {
2369
2716
  videoIdOrUrlName: string;
2370
2717
  }>;
2371
2718
  WebSeriesDetailScreen: React_2.ComponentType<WebSeriesDetailScreenProps>;
2719
+ WebConfirmationOverlay: React_2.ComponentType;
2720
+ UserProfilesOverlay: React_2.ComponentType<{
2721
+ onClose: (selectedProfileId: string) => void;
2722
+ }>;
2372
2723
  };
2373
2724
 
2374
2725
  /**
@@ -2377,6 +2728,9 @@ export declare type TivioInternalComponents = {
2377
2728
  export declare type TivioInternalHooks = {
2378
2729
  useMonetizationsSelectOverlay: () => MonetizationsSelectOverlayState;
2379
2730
  useQerkoOverlay: () => QerkoOverlayState;
2731
+ useConfirmationOverlay: () => ConfirmationOverlayContextState;
2732
+ useMonetizationActions: () => MonetizationActions;
2733
+ useCancelSubscriptions: () => UseCancelSubscriptionsResult;
2380
2734
  usePurchasesWithVideos: () => {
2381
2735
  purchases: Purchase[];
2382
2736
  };
@@ -2393,18 +2747,18 @@ export declare type TivioInternalHooks = {
2393
2747
  promotionId?: string;
2394
2748
  referralId: string;
2395
2749
  promotion?: any;
2396
- };
2750
+ } | null;
2397
2751
  error: Error | null;
2398
2752
  loading: boolean;
2399
2753
  });
2400
2754
  useTvChannel: UseTvChannel;
2401
- useChannelSource: UseChannelSource;
2402
2755
  useUser: () => {
2403
2756
  user: User | null;
2404
2757
  error: string | null;
2405
2758
  isInitialized: boolean;
2406
2759
  isSignedIn: boolean;
2407
2760
  };
2761
+ useOrganization: () => Organization | null;
2408
2762
  };
2409
2763
 
2410
2764
  /**
@@ -2413,20 +2767,27 @@ export declare type TivioInternalHooks = {
2413
2767
  export declare type TivioInternalProviders = {
2414
2768
  AppThemeProvider: React_2.ComponentType;
2415
2769
  CustomerProvider: React_2.ComponentType<{
2416
- customer: CUSTOMER_BUILD;
2770
+ customer: CustomerId;
2417
2771
  platform: PLATFORM;
2418
- children: any;
2772
+ children?: React_2.ReactNode;
2773
+ }>;
2774
+ ConfigProvider: React_2.ComponentType<React_2.PropsWithChildren>;
2775
+ UserContextProvider: React_2.ComponentType<{
2776
+ children?: React_2.ReactNode;
2419
2777
  }>;
2420
- ConfigProvider: React_2.ComponentType;
2421
- UserContextProvider: React_2.ComponentType;
2422
2778
  MonetizationsSelectOverlayContextProvider: React_2.ComponentType;
2423
2779
  QerkoOverlayContextProvider: React_2.ComponentType;
2424
- PurchasesWithVideosContextProvider: React_2.ComponentType;
2780
+ PurchasesWithVideosContextProvider: React_2.ComponentType<{
2781
+ children?: React_2.ReactNode;
2782
+ }>;
2425
2783
  /**
2426
2784
  * @deprecated not used in our app, can be removed when no sdk in production uses it
2427
2785
  */
2428
2786
  OrganizationSubscriptionsContextProvider: React_2.ComponentType;
2429
- RouterOverridesContextProvider: React_2.ComponentType<RouterOverridesContextState>;
2787
+ RouterOverridesContextProvider: React_2.ComponentType<{
2788
+ state: RouterOverridesContextState;
2789
+ }>;
2790
+ ConfirmationOverlayContextProvider: React_2.ComponentType;
2430
2791
  };
2431
2792
 
2432
2793
  /**
@@ -2523,6 +2884,7 @@ export declare type TivioReactBundle = {
2523
2884
  * TODO should not be the part of public API
2524
2885
  */
2525
2886
  internal: TivioInternalBundle;
2887
+ analytics: TivioAnalytics;
2526
2888
  destroy: () => Promise<void>;
2527
2889
  } & Pick<TivioSetters, 'setBundleVersion' | 'setUser' | 'setLanguage' | 'setStorageManager'>;
2528
2890
 
@@ -2584,7 +2946,7 @@ export declare type TivioVodSource = SourceBase & StartAndContinuePosition & {
2584
2946
  /**
2585
2947
  * @public
2586
2948
  */
2587
- export declare const TivioWidget: React_2.ForwardRefExoticComponent<Pick<TivioWidgetProps, "id" | "onEnabled" | "onBlur"> & React_2.RefAttributes<TivioWidgetRef>>;
2949
+ export declare const TivioWidget: React_2.ForwardRefExoticComponent<Omit<TivioWidgetProps, "ref"> & React_2.RefAttributes<TivioWidgetRef>>;
2588
2950
 
2589
2951
  /**
2590
2952
  * @public
@@ -2650,17 +3012,17 @@ export declare type Translation = {
2650
3012
  * @public
2651
3013
  */
2652
3014
  export declare type TvAppProps = {
2653
- customer: CUSTOMER_BUILD;
3015
+ customer: CustomerId;
2654
3016
  };
2655
3017
 
2656
3018
  /**
2657
3019
  * @public
2658
3020
  */
2659
3021
  export declare interface TvChannel extends RowItem {
2660
- name: string;
2661
3022
  id: string;
3023
+ itemType: ROW_ITEM_TYPES.TV_CHANNEL;
3024
+ name: string;
2662
3025
  path: string;
2663
- itemType: ROW_ITEM_TYPES;
2664
3026
  country?: string;
2665
3027
  filters: string[];
2666
3028
  logo?: string;
@@ -2671,9 +3033,12 @@ export declare interface TvChannel extends RowItem {
2671
3033
  * Transactions before subscriptions, sorted by price ascending.
2672
3034
  */
2673
3035
  getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
3036
+ getSourceUrl(fallbackUrl?: string): Promise<GetSourceUrlResponse>;
2674
3037
  purchasableMonetization: any | null;
2675
3038
  price: number;
2676
3039
  cover: string;
3040
+ isPlayable: boolean;
3041
+ uri: string;
2677
3042
  }
2678
3043
 
2679
3044
  /**
@@ -2767,6 +3132,15 @@ export declare type UseCancelSubscription = (subscriptionId: string) => {
2767
3132
  */
2768
3133
  export declare const useCancelSubscription: UseCancelSubscription;
2769
3134
 
3135
+ /**
3136
+ * @public
3137
+ */
3138
+ export declare interface UseCancelSubscriptionsResult {
3139
+ cancelSubscriptions: (subscriptionIds: string[]) => Promise<void>;
3140
+ cancellationInfos: QerkoCancellationInfo[];
3141
+ errors: string[];
3142
+ }
3143
+
2770
3144
  /**
2771
3145
  * @public
2772
3146
  */
@@ -2818,7 +3192,7 @@ export declare const useMarkers: () => Marker[] | null;
2818
3192
  /**
2819
3193
  * @public
2820
3194
  */
2821
- export declare const useOrganizationSubscriptions: (onlyPurchasableSubscriptions?: boolean | undefined) => {
3195
+ export declare const useOrganizationSubscriptions: (onlyPurchasableSubscriptions?: boolean) => {
2822
3196
  subscriptions: PurchasableMonetization[];
2823
3197
  };
2824
3198
 
@@ -2851,7 +3225,7 @@ export declare function usePurchaseRecovery(): {
2851
3225
  /**
2852
3226
  * @public
2853
3227
  */
2854
- export declare const usePurchaseSubscription: (monetizationId: string, voucher?: NewVoucher | undefined) => QerkoTransaction;
3228
+ export declare const usePurchaseSubscription: (monetizationId: string, voucher?: NewVoucher) => QerkoTransaction;
2855
3229
 
2856
3230
  /**
2857
3231
  * Return purchases with initialized video (purchases[i].video not null)
@@ -2889,6 +3263,7 @@ export declare type User = {
2889
3263
  extendableSubscription?: Purchase;
2890
3264
  isPurchasesInitialized: boolean;
2891
3265
  isSignedIn: boolean;
3266
+ isReady: boolean;
2892
3267
  email?: string;
2893
3268
  type?: UserType;
2894
3269
  photoURL: string | null;
@@ -2896,6 +3271,11 @@ export declare type User = {
2896
3271
  authUserId?: string;
2897
3272
  favorites: any[];
2898
3273
  watchedPositions: any[];
3274
+ profiles: any[];
3275
+ activeUserProfileId: string | null;
3276
+ createUserProfile: (request: any) => Promise<void>;
3277
+ deleteUserProfile: (profileId: string) => Promise<void>;
3278
+ setActiveUserProfileId: (id: string) => void;
2899
3279
  };
2900
3280
 
2901
3281
  /**
@@ -2943,12 +3323,12 @@ export declare const useSearch: UseSearch;
2943
3323
  */
2944
3324
  export declare type UseSearchOptions<T extends ALGOLIA_INDEX_NAME = any> = PaginationOptions & {
2945
3325
  minQueryLength?: number;
2946
- } & (T extends ALGOLIA_INDEX_NAME.VIDEOS ? UseSearchVideoOptions : {});
3326
+ } & (T extends ALGOLIA_INDEX_NAME.VIDEOS | ALGOLIA_INDEX_NAME.VIDEOSDESC ? UseSearchVideoOptions : {});
2947
3327
 
2948
3328
  /**
2949
3329
  * @public
2950
3330
  */
2951
- export declare type UseSearchResult<T extends ALGOLIA_INDEX_NAME> = T extends ALGOLIA_INDEX_NAME.VIDEOS ? Video : T extends ALGOLIA_INDEX_NAME.TAGS ? Tag : T extends ALGOLIA_INDEX_NAME.TV_CHANNELS ? TvChannel : unknown;
3331
+ export declare type UseSearchResult<T extends ALGOLIA_INDEX_NAME> = T extends ALGOLIA_INDEX_NAME.VIDEOS | ALGOLIA_INDEX_NAME.VIDEOSDESC ? Video : T extends ALGOLIA_INDEX_NAME.TAGS ? Tag : T extends ALGOLIA_INDEX_NAME.TV_CHANNELS ? TvChannel : unknown;
2952
3332
 
2953
3333
  /**
2954
3334
  * @public
@@ -2990,7 +3370,7 @@ export declare const useTivioReadyData: () => RemoteBundleState | null;
2990
3370
  /**
2991
3371
  * @public
2992
3372
  */
2993
- export declare const useTransactionPayment: (videoId: string, monetizationId: string, voucher?: NewVoucher | undefined) => QerkoTransaction;
3373
+ export declare const useTransactionPayment: (videoId: string, monetizationId: string, voucher?: NewVoucher) => QerkoTransaction;
2994
3374
 
2995
3375
  /**
2996
3376
  * @public
@@ -3016,7 +3396,7 @@ export declare const useUser: () => {
3016
3396
  * @param videoIdOrUrlName - video id or video nice url (e.g. some-interesting-video)
3017
3397
  * @public
3018
3398
  */
3019
- export declare const useVideo: (videoIdOrUrlName?: string | undefined) => {
3399
+ export declare const useVideo: (videoIdOrUrlName?: string) => {
3020
3400
  data: Video | null;
3021
3401
  error: string | null;
3022
3402
  };
@@ -3049,15 +3429,7 @@ export declare const useWatchWithoutAdsOffer: () => {
3049
3429
  /**
3050
3430
  * @public
3051
3431
  */
3052
- export declare const VAST_PROVIDERS: ({
3053
- id: VastProvider;
3054
- name: string;
3055
- development?: undefined;
3056
- } | {
3057
- id: VastProvider;
3058
- name: string;
3059
- development: boolean;
3060
- })[];
3432
+ export declare const VAST_PROVIDERS: VastProvidersItem[];
3061
3433
 
3062
3434
  /**
3063
3435
  * @public
@@ -3079,16 +3451,24 @@ export declare enum VastProvider {
3079
3451
  PRIMA = "prima",
3080
3452
  TEST = "test",
3081
3453
  TEST_VPAID = "test-vpaid",
3454
+ TIVIO_ADS = "tivio-ads",
3082
3455
  JOJ_TEST_AD_FORM_PROGRAMMATIC = "joj-test-ad-form-programmatic",
3083
3456
  JOJ_TEST_TESTER_VASTERIX = "joj-test-tester-vasterix",
3084
3457
  JOJ_TEST_TESTER_ADFORM_30 = "joj-test-tester-adform-30"
3085
3458
  }
3086
3459
 
3460
+ declare type VastProvidersItem = {
3461
+ id: VastProvider;
3462
+ name: string;
3463
+ development?: boolean;
3464
+ };
3465
+
3087
3466
  /**
3088
3467
  * @public
3089
3468
  */
3090
3469
  export declare interface Video extends RowItem {
3091
3470
  id: string;
3471
+ itemType: ROW_ITEM_TYPES.VIDEO;
3092
3472
  /**
3093
3473
  * @deprecated use assets instead
3094
3474
  */
@@ -3109,6 +3489,7 @@ export declare interface Video extends RowItem {
3109
3489
  * Transactions before subscriptions, sorted by price ascending.
3110
3490
  */
3111
3491
  getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
3492
+ getSourceUrl(fallbackUrl?: string): Promise<GetSourceUrlResponse>;
3112
3493
  purchasableMonetization: any | null;
3113
3494
  transaction: PurchasableMonetization | undefined;
3114
3495
  subscriptions: PurchasableMonetization[];
@@ -3140,6 +3521,8 @@ export declare interface Video extends RowItem {
3140
3521
  addToFavorites: () => void;
3141
3522
  removeFromFavorites: () => void;
3142
3523
  availability: VideoAvailability | null;
3524
+ sourceLanguages: LangCode[];
3525
+ uriByLanguage: (lang: LangCode) => string | undefined;
3143
3526
  }
3144
3527
 
3145
3528
  /**
@@ -3249,6 +3632,15 @@ declare type Voucher = {
3249
3632
  voucherInfo: SubscriptionInfo | TransactionInfo;
3250
3633
  };
3251
3634
 
3635
+ /**
3636
+ * @public
3637
+ */
3638
+ export declare interface WarningConfirmationOverlayPayload extends ConfirmationOverlayPayloadBase {
3639
+ type: 'warning';
3640
+ confirmButtonText?: string;
3641
+ closeButtonText?: string;
3642
+ }
3643
+
3252
3644
  /**
3253
3645
  * @public
3254
3646
  */
@@ -3311,7 +3703,7 @@ export declare type WebRowProps = {
3311
3703
  variant?: RowItemComponent;
3312
3704
  rowName?: string | any;
3313
3705
  fetchMore?: () => void;
3314
- onTileClick?: (item: ItemsInRow) => void;
3706
+ onTileClick?: (item?: ItemsInRow | null) => void;
3315
3707
  };
3316
3708
 
3317
3709
  /**
@@ -3355,6 +3747,6 @@ export declare type Widget = {
3355
3747
  /**
3356
3748
  * @public
3357
3749
  */
3358
- export declare function withPlayerContext(id: string): <P>(WrappedComponent: React_2.ComponentType<P>) => (props: P) => JSX.Element;
3750
+ export declare function withPlayerContext(id: string): <P extends JSX.IntrinsicAttributes>(WrappedComponent: React_2.ComponentType<P>) => (props: P) => JSX.Element;
3359
3751
 
3360
3752
  export { }