@tivio/sdk-react 4.5.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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;
@@ -355,6 +421,77 @@ export declare interface ConfirmationOverlayPayloadBase {
355
421
  automaticConfirmDelayMs?: number;
356
422
  }
357
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
+
358
495
  /**
359
496
  * @public
360
497
  * @TODO move somewhere else
@@ -401,14 +538,20 @@ export declare type Currency = 'CZK' | 'EUR' | 'USD';
401
538
  /**
402
539
  * @public
403
540
  */
404
- export declare enum CUSTOMER_BUILD {
541
+ export declare enum CustomerId {
405
542
  OKTAGON = "OKTAGON",
406
543
  JOJ = "JOJ",
407
544
  MALL = "MALL",
408
545
  GARAZ = "GARAZ",
409
546
  U_KULATEHO_STOLU = "U_KULATEHO_STOLU",
410
547
  INVESTOREES = "INVESTOREES",
411
- 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"
412
555
  }
413
556
 
414
557
  /**
@@ -559,6 +702,11 @@ export declare type DetailedPrice = {
559
702
  */
560
703
  export declare type DeviceInfo = ArrisDeviceInfo | ReactNativeDeviceInfo;
561
704
 
705
+ /**
706
+ * @public
707
+ */
708
+ export declare type DeviceOs = OperatingSystem | 'Tizen' | 'webOS' | 'Arris' | 'Android TV' | 'tvOS';
709
+
562
710
  /**
563
711
  * @public
564
712
  */
@@ -624,6 +772,7 @@ export declare type Events = {
624
772
  */
625
773
  export declare type ExternalTvConfig = {
626
774
  logo: string;
775
+ splashScreenBackgroundColor?: string;
627
776
  };
628
777
 
629
778
  /**
@@ -639,12 +788,32 @@ export declare const fetchBundle: (secret: string, conf: InternalConfig) => Prom
639
788
  declare type FetchPackage = (url: string) => Promise<string>;
640
789
 
641
790
  /**
791
+ * Counterpart for {@link ForbiddenError} from @tivio/api.
642
792
  * @public
643
793
  */
644
- export declare interface GenericOnCallError {
645
- code: string;
646
- message?: string;
647
- details?: string[];
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.
809
+ * @public
810
+ */
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>;
648
817
  }
649
818
 
650
819
  /**
@@ -675,6 +844,57 @@ export declare type GetPurchaseInfoResponse = {
675
844
  };
676
845
  };
677
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
+
678
898
  /**
679
899
  * @public
680
900
  */
@@ -794,7 +1014,7 @@ export declare type ItemComponent = RowItemComponent | BannerItemComponent;
794
1014
  /**
795
1015
  * @public
796
1016
  */
797
- export declare type ItemsInRow = Tag | Video | TvChannel;
1017
+ export declare type ItemsInRow = Tag | Video | TvChannel | Advertisement;
798
1018
 
799
1019
  /**
800
1020
  * @public
@@ -939,6 +1159,14 @@ export declare interface Marker {
939
1159
  type: 'AD' | 'AD_SEGMENT' | 'START' | 'END' | 'INTRO';
940
1160
  }
941
1161
 
1162
+ /**
1163
+ * @public
1164
+ */
1165
+ export declare type MarkersProps = {
1166
+ color?: string;
1167
+ className?: string;
1168
+ };
1169
+
942
1170
  /**
943
1171
  * External information of video migrated via our Public API.
944
1172
  * @public
@@ -1004,6 +1232,7 @@ export declare interface MonetizationsSelectOverlayData {
1004
1232
  * Otherwise, user is making a purchase for himself.
1005
1233
  */
1006
1234
  voucherPurchase?: boolean;
1235
+ registrationRedirect?: boolean;
1007
1236
  onPurchase?: () => void;
1008
1237
  onClose?: () => void;
1009
1238
  }
@@ -1012,9 +1241,10 @@ export declare interface MonetizationsSelectOverlayData {
1012
1241
  * @public
1013
1242
  */
1014
1243
  export declare type MonetizationsSelectOverlayState = {
1244
+ isOpen: boolean;
1015
1245
  data: MonetizationsSelectOverlayData | null;
1016
- closeMonetizationsSelectOverlay: () => void;
1017
1246
  openMonetizationsSelectOverlay: (data: MonetizationsSelectOverlayData) => void;
1247
+ closeMonetizationsSelectOverlay: () => void;
1018
1248
  };
1019
1249
 
1020
1250
  /**
@@ -1115,12 +1345,16 @@ export declare type PaginationInterface<Entity> = {
1115
1345
  export declare type PaginationOptions = Partial<{
1116
1346
  limit: number;
1117
1347
  noLimit: boolean;
1348
+ noAutoFetch: boolean;
1118
1349
  }>;
1119
1350
 
1120
1351
  /**
1121
1352
  * @public
1122
1353
  */
1123
1354
  export declare enum PLATFORM {
1355
+ /**
1356
+ * Includes tablets.
1357
+ */
1124
1358
  MOBILE = "MOBILE",
1125
1359
  WEB = "WEB",
1126
1360
  TV = "TV"
@@ -1721,8 +1955,13 @@ export declare type ReactNativeDeviceInfo = {
1721
1955
  os?: 'iOS' | 'Android OS';
1722
1956
  osVersion: string;
1723
1957
  platform: PLATFORM;
1958
+ isTablet?: boolean;
1724
1959
  };
1725
1960
 
1961
+ export declare enum RegistrationRedirect {
1962
+ PAYMENT = "payment"
1963
+ }
1964
+
1726
1965
  /**
1727
1966
  * @public
1728
1967
  */
@@ -1738,7 +1977,7 @@ export declare type RemoteBundleState = {
1738
1977
  export declare type RemoteProviderProps = {
1739
1978
  disableUnmounting?: boolean;
1740
1979
  language?: LangCode;
1741
- children: any;
1980
+ children: React_2.ReactNode;
1742
1981
  };
1743
1982
 
1744
1983
  /**
@@ -1769,7 +2008,9 @@ export declare interface RouterOverrides {
1769
2008
  manual?: boolean;
1770
2009
  origin?: LoginRedirect;
1771
2010
  }) => void;
1772
- goToRegistrationPage: () => void;
2011
+ goToRegistrationPage: (options?: {
2012
+ origin?: RegistrationRedirect;
2013
+ }) => void;
1773
2014
  goBack: () => void;
1774
2015
  goLivePlayer: (tvChannelId: string) => void;
1775
2016
  goVodPlayer: (videoIdOrUrlName: string) => void;
@@ -1783,6 +2024,7 @@ export declare interface RouterOverrides {
1783
2024
  export declare interface RouterOverridesContextState {
1784
2025
  routerOverrides: RouterOverrides;
1785
2026
  Link: React_2.ComponentType<{
2027
+ children?: React_2.ReactNode;
1786
2028
  href?: string;
1787
2029
  }>;
1788
2030
  }
@@ -1798,7 +2040,8 @@ export declare type Row = RowStandard | RowBanner;
1798
2040
  export declare enum ROW_ITEM_TYPES {
1799
2041
  VIDEO = "VIDEO",
1800
2042
  TAG = "TAG",
1801
- TV_CHANNEL = "TV_CHANNEL"
2043
+ TV_CHANNEL = "TV_CHANNEL",
2044
+ ADVERTISEMENT = "ADVERTISEMENT"
1802
2045
  }
1803
2046
 
1804
2047
  /**
@@ -1859,7 +2102,8 @@ export declare interface RowItemAssets {
1859
2102
  export declare enum RowItemComponent {
1860
2103
  ROW_ITEM_PORTRAIT = "ROW_ITEM_PORTRAIT",
1861
2104
  ROW_ITEM_LANDSCAPE = "ROW_ITEM_LANDSCAPE",
1862
- ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED"
2105
+ ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED",
2106
+ ROW_ITEM_BANNER = "ROW_ITEM_BANNER"
1863
2107
  }
1864
2108
 
1865
2109
  /**
@@ -1934,7 +2178,7 @@ export declare type ScreenOptions = Partial<{
1934
2178
  /**
1935
2179
  * @public
1936
2180
  */
1937
- export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites';
2181
+ export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched';
1938
2182
 
1939
2183
  /**
1940
2184
  * Listen to screen data
@@ -2000,7 +2244,7 @@ export declare interface SettingsItem {
2000
2244
  * Sign out - setUser(null)
2001
2245
  * @public
2002
2246
  */
2003
- export declare const setUser: (userId: string | null, payload?: UserPayload | undefined) => Promise<void>;
2247
+ export declare const setUser: (userId: string | null, payload?: UserPayload) => Promise<void>;
2004
2248
 
2005
2249
  /**
2006
2250
  * @public
@@ -2181,6 +2425,7 @@ export declare type TileOptions = {
2181
2425
  * @public
2182
2426
  */
2183
2427
  export declare type TileProps = {
2428
+ children?: React_2.ReactNode;
2184
2429
  cover: string;
2185
2430
  bottomLabel: string;
2186
2431
  bottomLabelAreaHeight: number;
@@ -2243,6 +2488,13 @@ export declare type TileSizesMap = {
2243
2488
  */
2244
2489
  export declare type TileSizeVariant = 'default' | 'mobile';
2245
2490
 
2491
+ /**
2492
+ * @public
2493
+ */
2494
+ export declare type TivioAnalytics = {
2495
+ analytics: AnalyticsInterface;
2496
+ };
2497
+
2246
2498
  /**
2247
2499
  * @public
2248
2500
  */
@@ -2282,8 +2534,10 @@ export declare type TivioBundleFile = {
2282
2534
  * @public
2283
2535
  */
2284
2536
  export declare type TivioComponents = {
2285
- Markers: React_2.ReactNode;
2286
- PlayerDataContext: React_2.ReactNode;
2537
+ Markers: React_2.ComponentType<MarkersProps>;
2538
+ PlayerDataContext: React_2.Context<{
2539
+ player: any | null;
2540
+ }>;
2287
2541
  Provider: React_2.ComponentType<RemoteProviderProps>;
2288
2542
  WebPlayer: React_2.ComponentType<WebPlayerProps>;
2289
2543
  Widget: React_2.ComponentType<TivioWidgetProps>;
@@ -2352,6 +2606,13 @@ export declare interface TivioConfig {
2352
2606
  */
2353
2607
  deviceInfo?: DeviceInfo;
2354
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;
2355
2616
  }
2356
2617
 
2357
2618
  /**
@@ -2431,6 +2692,7 @@ export declare type TivioHooks = {
2431
2692
  applyInviteCode: (code: string) => void;
2432
2693
  inviteCodeReset: () => void;
2433
2694
  };
2695
+ useChannelSource: UseChannelSource;
2434
2696
  };
2435
2697
 
2436
2698
  /**
@@ -2485,12 +2747,11 @@ export declare type TivioInternalHooks = {
2485
2747
  promotionId?: string;
2486
2748
  referralId: string;
2487
2749
  promotion?: any;
2488
- };
2750
+ } | null;
2489
2751
  error: Error | null;
2490
2752
  loading: boolean;
2491
2753
  });
2492
2754
  useTvChannel: UseTvChannel;
2493
- useChannelSource: UseChannelSource;
2494
2755
  useUser: () => {
2495
2756
  user: User | null;
2496
2757
  error: string | null;
@@ -2506,15 +2767,19 @@ export declare type TivioInternalHooks = {
2506
2767
  export declare type TivioInternalProviders = {
2507
2768
  AppThemeProvider: React_2.ComponentType;
2508
2769
  CustomerProvider: React_2.ComponentType<{
2509
- customer: CUSTOMER_BUILD;
2770
+ customer: CustomerId;
2510
2771
  platform: PLATFORM;
2511
- 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;
2512
2777
  }>;
2513
- ConfigProvider: React_2.ComponentType;
2514
- UserContextProvider: React_2.ComponentType;
2515
2778
  MonetizationsSelectOverlayContextProvider: React_2.ComponentType;
2516
2779
  QerkoOverlayContextProvider: React_2.ComponentType;
2517
- PurchasesWithVideosContextProvider: React_2.ComponentType;
2780
+ PurchasesWithVideosContextProvider: React_2.ComponentType<{
2781
+ children?: React_2.ReactNode;
2782
+ }>;
2518
2783
  /**
2519
2784
  * @deprecated not used in our app, can be removed when no sdk in production uses it
2520
2785
  */
@@ -2619,6 +2884,7 @@ export declare type TivioReactBundle = {
2619
2884
  * TODO should not be the part of public API
2620
2885
  */
2621
2886
  internal: TivioInternalBundle;
2887
+ analytics: TivioAnalytics;
2622
2888
  destroy: () => Promise<void>;
2623
2889
  } & Pick<TivioSetters, 'setBundleVersion' | 'setUser' | 'setLanguage' | 'setStorageManager'>;
2624
2890
 
@@ -2680,7 +2946,7 @@ export declare type TivioVodSource = SourceBase & StartAndContinuePosition & {
2680
2946
  /**
2681
2947
  * @public
2682
2948
  */
2683
- 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>>;
2684
2950
 
2685
2951
  /**
2686
2952
  * @public
@@ -2746,7 +3012,7 @@ export declare type Translation = {
2746
3012
  * @public
2747
3013
  */
2748
3014
  export declare type TvAppProps = {
2749
- customer: CUSTOMER_BUILD;
3015
+ customer: CustomerId;
2750
3016
  };
2751
3017
 
2752
3018
  /**
@@ -2767,10 +3033,12 @@ export declare interface TvChannel extends RowItem {
2767
3033
  * Transactions before subscriptions, sorted by price ascending.
2768
3034
  */
2769
3035
  getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
3036
+ getSourceUrl(fallbackUrl?: string): Promise<GetSourceUrlResponse>;
2770
3037
  purchasableMonetization: any | null;
2771
3038
  price: number;
2772
3039
  cover: string;
2773
3040
  isPlayable: boolean;
3041
+ uri: string;
2774
3042
  }
2775
3043
 
2776
3044
  /**
@@ -2924,7 +3192,7 @@ export declare const useMarkers: () => Marker[] | null;
2924
3192
  /**
2925
3193
  * @public
2926
3194
  */
2927
- export declare const useOrganizationSubscriptions: (onlyPurchasableSubscriptions?: boolean | undefined) => {
3195
+ export declare const useOrganizationSubscriptions: (onlyPurchasableSubscriptions?: boolean) => {
2928
3196
  subscriptions: PurchasableMonetization[];
2929
3197
  };
2930
3198
 
@@ -2957,7 +3225,7 @@ export declare function usePurchaseRecovery(): {
2957
3225
  /**
2958
3226
  * @public
2959
3227
  */
2960
- export declare const usePurchaseSubscription: (monetizationId: string, voucher?: NewVoucher | undefined) => QerkoTransaction;
3228
+ export declare const usePurchaseSubscription: (monetizationId: string, voucher?: NewVoucher) => QerkoTransaction;
2961
3229
 
2962
3230
  /**
2963
3231
  * Return purchases with initialized video (purchases[i].video not null)
@@ -3006,6 +3274,7 @@ export declare type User = {
3006
3274
  profiles: any[];
3007
3275
  activeUserProfileId: string | null;
3008
3276
  createUserProfile: (request: any) => Promise<void>;
3277
+ deleteUserProfile: (profileId: string) => Promise<void>;
3009
3278
  setActiveUserProfileId: (id: string) => void;
3010
3279
  };
3011
3280
 
@@ -3101,7 +3370,7 @@ export declare const useTivioReadyData: () => RemoteBundleState | null;
3101
3370
  /**
3102
3371
  * @public
3103
3372
  */
3104
- export declare const useTransactionPayment: (videoId: string, monetizationId: string, voucher?: NewVoucher | undefined) => QerkoTransaction;
3373
+ export declare const useTransactionPayment: (videoId: string, monetizationId: string, voucher?: NewVoucher) => QerkoTransaction;
3105
3374
 
3106
3375
  /**
3107
3376
  * @public
@@ -3127,7 +3396,7 @@ export declare const useUser: () => {
3127
3396
  * @param videoIdOrUrlName - video id or video nice url (e.g. some-interesting-video)
3128
3397
  * @public
3129
3398
  */
3130
- export declare const useVideo: (videoIdOrUrlName?: string | undefined) => {
3399
+ export declare const useVideo: (videoIdOrUrlName?: string) => {
3131
3400
  data: Video | null;
3132
3401
  error: string | null;
3133
3402
  };
@@ -3160,15 +3429,7 @@ export declare const useWatchWithoutAdsOffer: () => {
3160
3429
  /**
3161
3430
  * @public
3162
3431
  */
3163
- export declare const VAST_PROVIDERS: ({
3164
- id: VastProvider;
3165
- name: string;
3166
- development?: undefined;
3167
- } | {
3168
- id: VastProvider;
3169
- name: string;
3170
- development: boolean;
3171
- })[];
3432
+ export declare const VAST_PROVIDERS: VastProvidersItem[];
3172
3433
 
3173
3434
  /**
3174
3435
  * @public
@@ -3190,11 +3451,18 @@ export declare enum VastProvider {
3190
3451
  PRIMA = "prima",
3191
3452
  TEST = "test",
3192
3453
  TEST_VPAID = "test-vpaid",
3454
+ TIVIO_ADS = "tivio-ads",
3193
3455
  JOJ_TEST_AD_FORM_PROGRAMMATIC = "joj-test-ad-form-programmatic",
3194
3456
  JOJ_TEST_TESTER_VASTERIX = "joj-test-tester-vasterix",
3195
3457
  JOJ_TEST_TESTER_ADFORM_30 = "joj-test-tester-adform-30"
3196
3458
  }
3197
3459
 
3460
+ declare type VastProvidersItem = {
3461
+ id: VastProvider;
3462
+ name: string;
3463
+ development?: boolean;
3464
+ };
3465
+
3198
3466
  /**
3199
3467
  * @public
3200
3468
  */
@@ -3221,6 +3489,7 @@ export declare interface Video extends RowItem {
3221
3489
  * Transactions before subscriptions, sorted by price ascending.
3222
3490
  */
3223
3491
  getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
3492
+ getSourceUrl(fallbackUrl?: string): Promise<GetSourceUrlResponse>;
3224
3493
  purchasableMonetization: any | null;
3225
3494
  transaction: PurchasableMonetization | undefined;
3226
3495
  subscriptions: PurchasableMonetization[];
@@ -3252,6 +3521,8 @@ export declare interface Video extends RowItem {
3252
3521
  addToFavorites: () => void;
3253
3522
  removeFromFavorites: () => void;
3254
3523
  availability: VideoAvailability | null;
3524
+ sourceLanguages: LangCode[];
3525
+ uriByLanguage: (lang: LangCode) => string | undefined;
3255
3526
  }
3256
3527
 
3257
3528
  /**
@@ -3432,7 +3703,7 @@ export declare type WebRowProps = {
3432
3703
  variant?: RowItemComponent;
3433
3704
  rowName?: string | any;
3434
3705
  fetchMore?: () => void;
3435
- onTileClick?: (item: ItemsInRow) => void;
3706
+ onTileClick?: (item?: ItemsInRow | null) => void;
3436
3707
  };
3437
3708
 
3438
3709
  /**
@@ -3476,6 +3747,6 @@ export declare type Widget = {
3476
3747
  /**
3477
3748
  * @public
3478
3749
  */
3479
- 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;
3480
3751
 
3481
3752
  export { }