@tivio/sdk-react 3.5.0 → 3.6.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.
package/dist/index.d.ts CHANGED
@@ -1,44 +1,10 @@
1
- import { AuthOverlayState } from '@tivio/common';
2
- import { Channel as Channel_2 } from '@tivio/common/dist/types/externalTypes/channel';
3
- import { Channel as Channel_3 } from '@tivio/common';
4
1
  import { ComponentType } from 'react';
5
- import { CreateUserWithEmailAndPassword } from '@tivio/common';
6
- import { Currency } from '@tivio/common';
7
- import { CUSTOMER_BUILD } from '@tivio/common';
2
+ import { default as firebase_2 } from 'firebase';
3
+ import type { default as firebase_3 } from 'firebase/app';
8
4
  import { FunctionComponentElement } from 'react';
9
- import { ItemsInRow } from '@tivio/common';
10
- import { Monetization } from '@tivio/common';
11
- import { PaginationInterface } from '@tivio/common';
12
- import { PaginationOptions } from '@tivio/common';
13
- import { PLATFORM } from '@tivio/common';
14
- import type { Purchase as Purchase_2 } from '@tivio/common';
15
- import { Purchase as Purchase_3 } from '@tivio/common/dist/types/externalTypes/user';
16
- import { QerkoCancellationInfo } from '@tivio/common';
17
- import type { QerkoPaymentInfo } from '@tivio/common';
18
- import { QerkoTransaction } from '@tivio/common';
5
+ import { OrderByDirection } from '@firebase/firestore-types';
19
6
  import { default as React_2 } from 'react';
20
- import { Row } from '@tivio/common';
21
- import { Screen as Screen_2 } from '@tivio/common';
22
- import { ScreenOptions } from '@tivio/common';
23
- import { Section as Section_2 } from '@tivio/common/dist/types/externalTypes/section';
24
- import { Section as Section_3 } from '@tivio/common';
25
- import type { SubscribeToItemsInRow } from '@tivio/common';
26
- import { SubscribeToItemsInRowOptions } from '@tivio/common';
27
- import type { SubscribeToRowsInScreen } from '@tivio/common';
28
- import type { SubscribeToScreen } from '@tivio/common';
29
- import { SubscribeToTaggedVideos } from '@tivio/common';
30
- import { Tag } from '@tivio/common';
31
- import { TilePropsPartial } from '@tivio/common';
32
- import type { TvAppProps } from '@tivio/common';
33
- import { UseCancelSubscription } from '@tivio/common';
34
- import { UseChannelSource } from '@tivio/common';
35
- import type { User } from '@tivio/common';
36
- import { User as User_2 } from '@tivio/common/dist/types/externalTypes/user';
37
- import { UseSearch } from '@tivio/common';
38
- import type { UseTvChannel } from '@tivio/common';
39
- import { Video } from '@tivio/common';
40
- import { WebRowProps } from '@tivio/common';
41
- import { WebSeriesDetailScreenProps } from '@tivio/common';
7
+ import { WhereFilterOp } from '@firebase/firestore-types';
42
8
 
43
9
  declare type AdSegment = {
44
10
  id: string;
@@ -101,11 +67,43 @@ export declare type AdSource = {
101
67
  * @public
102
68
  */
103
69
  export declare enum ALGOLIA_INDEX_NAME {
104
- VIDEOS = 'videos',
105
- VIDEOSDESC = 'videos_created_desc',
106
- TAGS = 'tags',
107
- TV_CHANNELS = 'tvChannels',
108
- USERS = 'users'
70
+ VIDEOS = "videos",
71
+ VIDEOSDESC = "videos_created_desc",
72
+ TAGS = "tags",
73
+ TV_CHANNELS = "tvChannels",
74
+ USERS = "users"
75
+ }
76
+
77
+ declare interface Asset {
78
+ background: string;
79
+ }
80
+
81
+ declare type Assets = {
82
+ [assetName: string]: ScalableAsset;
83
+ };
84
+
85
+ declare type AuthOverlayPayload = {
86
+ prefilledData?: {
87
+ email: string;
88
+ };
89
+ /**
90
+ * "Goto" function (see router.utils.ts) to run after the overlay is closed. Null if no redirect is required.
91
+ * Defaults to homepage.
92
+ */
93
+ redirectAfterSubmit?: ((...args: any[]) => void) | null;
94
+ };
95
+
96
+ declare type AuthOverlayState = {
97
+ type: AuthOverlayType;
98
+ closeAuthOverlay: () => void;
99
+ openAuthOverlay: (type: AuthOverlayType, payload?: AuthOverlayPayload) => void;
100
+ payload?: AuthOverlayPayload | null;
101
+ };
102
+
103
+ declare type AuthOverlayType = 'login' | 'registration' | 'closed' | 'reset-password';
104
+
105
+ declare interface AvailableSeason {
106
+ seasonNumber: number;
109
107
  }
110
108
 
111
109
  export declare type BadRequestError = Error & {
@@ -140,7 +138,10 @@ export declare type Channel = {
140
138
  recentVideos: Video[];
141
139
  };
142
140
 
143
- export declare const ChannelsContext: React_2.Context<DataState<Channel_3>>;
141
+ declare interface Channel_2 {
142
+ }
143
+
144
+ export declare const ChannelsContext: React_2.Context<DataState<Channel_2>>;
144
145
 
145
146
  export declare type ChannelSource = {
146
147
  new (uri: string, originalOptions: Record<string, any>, channelName: string, programName: string, programDescription: string, from: Date, to: Date): ChannelSource;
@@ -156,6 +157,18 @@ export declare type ChannelSource = {
156
157
  } | null;
157
158
  };
158
159
 
160
+ declare interface ChannelSource_2 {
161
+ type: 'ChannelSource';
162
+ uri: string;
163
+ originalOptions: any;
164
+ channelName: string;
165
+ programName: string;
166
+ programDescription: string;
167
+ from: Date;
168
+ to: Date;
169
+ poster?: string;
170
+ }
171
+
159
172
  export declare interface ChannelSourcePojo {
160
173
  type: 'ChannelSource';
161
174
  uri: string;
@@ -179,6 +192,13 @@ export declare type Config = Pick<InternalConfig, 'bundleUrlOverride' | 'currenc
179
192
  runFeatureSupportCheck?: boolean;
180
193
  };
181
194
 
195
+ declare type CoverPadding = {
196
+ top?: number;
197
+ bottom?: number;
198
+ left?: number;
199
+ right?: number;
200
+ };
201
+
182
202
  export declare const createPubSub: () => PubSub;
183
203
 
184
204
  /**
@@ -188,7 +208,18 @@ export declare const createRemotePackageLoader: () => (secret: string, conf: Int
188
208
 
189
209
  export declare const createUseRemoteBundle: () => (conf: InternalConfig) => RemoteBundleState;
190
210
 
191
- export { Currency }
211
+ declare type CreateUserWithEmailAndPassword = (email: string, password: string, username?: string, referralToken?: string) => Promise<string | null>;
212
+
213
+ export declare type Currency = 'CZK' | 'EUR' | 'USD';
214
+
215
+ export declare enum CUSTOMER_BUILD {
216
+ OKTAGON = "OKTAGON",
217
+ JOJ = "JOJ",
218
+ MALL = "MALL",
219
+ GARAZ = "GARAZ",
220
+ U_KULATEHO_STOLU = "U_KULATEHO_STOLU",
221
+ INVESTOREES = "INVESTOREES"
222
+ }
192
223
 
193
224
  declare interface DataState<T> {
194
225
  data: {
@@ -197,8 +228,23 @@ declare interface DataState<T> {
197
228
  setData: (key: string, data: HookData<T>) => void;
198
229
  }
199
230
 
231
+ declare type DefaultOrderByField = 'created';
232
+
233
+ declare type DetailedPrice = {
234
+ amount: number;
235
+ currency: Currency;
236
+ frequency?: MONETIZATION_FREQUENCY;
237
+ };
238
+
200
239
  export declare type Disposer = () => void;
201
240
 
241
+ declare type Disposer_2 = () => void;
242
+
243
+ declare type DocumentOptions = Partial<{
244
+ lazyLoading: boolean;
245
+ subscribeOnChanges: boolean;
246
+ }>;
247
+
202
248
  export declare type Empty = void | Promise<void> | undefined | Promise<undefined>;
203
249
 
204
250
  export declare type Events = {
@@ -206,6 +252,10 @@ export declare type Events = {
206
252
  'on-error': Error;
207
253
  };
208
254
 
255
+ export declare type ExternalTvConfig = {
256
+ logo: string;
257
+ };
258
+
209
259
  /**
210
260
  * @throws if fetch fails
211
261
  */
@@ -287,6 +337,11 @@ declare interface IntroMarker {
287
337
  skip: () => void;
288
338
  }
289
339
 
340
+ declare type ItemsInRow = Tag | Video | TvChannel;
341
+
342
+ /**
343
+ * Enum of all supported languages codes as in ISO 639-1
344
+ */
290
345
  export declare enum LangCode {
291
346
  CS = "cs",
292
347
  DE = "de",
@@ -297,6 +352,11 @@ export declare enum LangCode {
297
352
  SP = "sp"
298
353
  }
299
354
 
355
+ declare type LinkedVideo = {
356
+ video: Video;
357
+ type: 'CUT' | 'TRAILER' | 'BONUS' | 'CHILD';
358
+ };
359
+
300
360
  declare interface Logger {
301
361
  /** important messages */
302
362
  warn(...data: LoggerArgs): void;
@@ -326,7 +386,26 @@ export declare type Marker = {
326
386
  toMs?: number;
327
387
  };
328
388
 
329
- export { Monetization }
389
+ export declare interface Monetization {
390
+ id: string;
391
+ price?: string | number;
392
+ type?: MonetizationType;
393
+ frequency?: MONETIZATION_FREQUENCY;
394
+ name?: string;
395
+ description?: string;
396
+ benefits?: Translation[];
397
+ localizedBenefits?: string[];
398
+ }
399
+
400
+ declare enum MONETIZATION_FREQUENCY {
401
+ ONE_TIME_PAYMENT = "ONE_TIME_PAYMENT",
402
+ DAILY = "DAILY",
403
+ WEEKLY = "WEEKLY",
404
+ MONTHLY = "MONTHLY",
405
+ ANNUALLY = "ANNUALLY"
406
+ }
407
+
408
+ declare type MonetizationType = 'advertisement' | 'transaction' | 'subscription';
330
409
 
331
410
  /**
332
411
  * TODO: Duplicate, because we can't import types from core-js.
@@ -339,12 +418,35 @@ export declare type Nullable<T> = {
339
418
  [P in keyof T]: T[P] | null;
340
419
  };
341
420
 
421
+ declare interface OrderBy {
422
+ field: string;
423
+ directionStr?: OrderByDirection;
424
+ }
425
+
342
426
  declare type PaginationData<T> = {
343
427
  items: T[];
344
428
  hasNextPage: boolean;
345
429
  fetchMore: Function;
346
430
  };
347
431
 
432
+ declare type PaginationInterface<Entity> = {
433
+ items: Entity[];
434
+ fetchMore: () => void;
435
+ hasNextPage?: boolean;
436
+ loading?: boolean;
437
+ };
438
+
439
+ declare type PaginationOptions = Partial<{
440
+ limit: number;
441
+ noLimit: boolean;
442
+ }>;
443
+
444
+ export declare enum PLATFORM {
445
+ MOBILE = "MOBILE",
446
+ WEB = "WEB",
447
+ TV = "TV"
448
+ }
449
+
348
450
  export declare interface PlayerCapability {
349
451
  codec: 'h264' | 'h265';
350
452
  encryption: 'fairplay' | 'none' | 'playready' | 'widevine';
@@ -480,6 +582,48 @@ export declare type Purchase = {
480
582
  video: Video | null;
481
583
  };
482
584
 
585
+ declare type Purchase_2 = {
586
+ id: string;
587
+ isPurchased: boolean;
588
+ monetizationRef: firebase_3.firestore.DocumentReference | null;
589
+ monetization: PurchaseMonetization | null;
590
+ monetizationId: string | null;
591
+ type: MonetizationType | null;
592
+ videoId: string | null;
593
+ status: PurchaseStatus | null;
594
+ video: Video | null;
595
+ videoRef: firebase_3.firestore.DocumentReference | null;
596
+ expirationDate: Date | null;
597
+ isExpired: boolean;
598
+ voucherId?: string;
599
+ };
600
+
601
+ declare type PurchaseMonetization = {
602
+ currency: Currency;
603
+ period: number;
604
+ price: number;
605
+ type: MonetizationType;
606
+ title: string;
607
+ frequency: MONETIZATION_FREQUENCY | null;
608
+ /**
609
+ * If set, purchase (subscription) activated by voucher will stay valid for this amount of seconds.
610
+ * Otherwise, purchase will be valid for one "monetization frequency" period.
611
+ */
612
+ voucherPurchaseDuration?: number;
613
+ };
614
+
615
+ declare enum PurchaseStatus {
616
+ NEW = "NEW",
617
+ PAID = "PAID",
618
+ CANCELLED = "CANCELLED",
619
+ ERROR = "ERROR"
620
+ }
621
+
622
+ export declare interface QerkoCancellationInfo {
623
+ purchaseId: string;
624
+ status: PurchaseStatus;
625
+ }
626
+
483
627
  export declare interface QerkoData {
484
628
  monetization: Monetization;
485
629
  video?: Video;
@@ -493,6 +637,26 @@ export declare interface QerkoOverlayState {
493
637
  closeQerkoOverlay: () => void;
494
638
  }
495
639
 
640
+ export declare interface QerkoPaymentInfo {
641
+ webPaymentGatewayLink: string;
642
+ gatewayUri: string;
643
+ paymentQRCodeUri: string;
644
+ purchaseId: string;
645
+ currency: string;
646
+ amount: number;
647
+ monetizationType: MonetizationType;
648
+ recovery?: boolean;
649
+ monetizationFrequency: MONETIZATION_FREQUENCY;
650
+ }
651
+
652
+ declare interface QerkoTransaction {
653
+ paymentInfo: QerkoPaymentInfo | null;
654
+ paymentError: string | null;
655
+ paymentStatus: string | null;
656
+ getPaymentInfo: () => Promise<void>;
657
+ voucherId?: string;
658
+ }
659
+
496
660
  export declare type RemoteBundleState = {
497
661
  config: InternalConfig;
498
662
  error: string | null;
@@ -519,6 +683,69 @@ export declare interface RouterOverridesContextState {
519
683
  routerOverrides: RouterOverrides;
520
684
  }
521
685
 
686
+ declare interface Row {
687
+ id: string;
688
+ rowId: string;
689
+ name: string;
690
+ description?: string;
691
+ itemComponent: RowItemComponent;
692
+ rowComponent: RowComponent;
693
+ assets: Assets;
694
+ type: ScreenRowType;
695
+ }
696
+
697
+ export declare enum ROW_ITEM_TYPES {
698
+ VIDEO = "VIDEO",
699
+ TAG = "TAG",
700
+ TV_CHANNEL = "TV_CHANNEL"
701
+ }
702
+
703
+ declare enum RowComponent {
704
+ ROW = "ROW",
705
+ BANNER = "BANNER"
706
+ }
707
+
708
+ declare interface RowItem extends RowItemAssets {
709
+ itemType: ROW_ITEM_TYPES;
710
+ name?: string;
711
+ description?: string;
712
+ assets: Assets | null;
713
+ }
714
+
715
+ declare interface RowItemAssets {
716
+ landscape?: string | null;
717
+ portrait?: string | null;
718
+ circled?: string | null;
719
+ banner?: string | null;
720
+ }
721
+
722
+ declare enum RowItemComponent {
723
+ ROW_ITEM_PORTRAIT = "ROW_ITEM_PORTRAIT",
724
+ ROW_ITEM_LANDSCAPE = "ROW_ITEM_LANDSCAPE",
725
+ ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED"
726
+ }
727
+
728
+ declare type ScalableAsset = {
729
+ '@1': Asset;
730
+ '@2'?: Asset;
731
+ '@3'?: Asset;
732
+ };
733
+
734
+ declare interface Screen_2 {
735
+ id: string;
736
+ name: string;
737
+ description?: string;
738
+ assets: Assets;
739
+ rows: Row[];
740
+ }
741
+
742
+ declare type ScreenOptions = Partial<{
743
+ language: LangCode;
744
+ initRows: boolean;
745
+ }> & DocumentOptions;
746
+
747
+ declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites';
748
+
522
749
  export declare type Section = {
523
750
  id: string;
524
751
  name: string;
@@ -526,7 +753,10 @@ export declare type Section = {
526
753
  videos: Video[];
527
754
  };
528
755
 
529
- export declare const SectionsContext: React_2.Context<DataState<Section_3>>;
756
+ declare interface Section_2 {
757
+ }
758
+
759
+ export declare const SectionsContext: React_2.Context<DataState<Section_2>>;
530
760
 
531
761
  export declare type Settings = {
532
762
  /**
@@ -545,6 +775,25 @@ export declare const setUser: (userId: string | null, payload?: UserPayload | un
545
775
 
546
776
  export declare const showGdprConsentPreferences: () => Promise<void>;
547
777
 
778
+ declare type SubscribeToItemsInRow = (rowId: string, cb: (error: Error | null, data: PaginationInterface<ItemsInRow> | null) => void, options?: SubscribeToItemsInRowOptions) => Disposer_2;
779
+
780
+ declare type SubscribeToItemsInRowOptions = Partial<{
781
+ fetchTags: boolean;
782
+ }> & PaginationOptions;
783
+
784
+ declare type SubscribeToRowsInScreen = (screenId: string, cb: (error: Error | null, data: PaginationInterface<Row> | null) => void, options?: PaginationOptions) => Disposer_2;
785
+
786
+ declare type SubscribeToScreen = (screenId: string, cb: (error: Error | null, data: Screen_2 | null) => void, options?: ScreenOptions) => Disposer_2;
787
+
788
+ declare type SubscribeToTaggedVideos = (tagIds: string[], cb: (error: Error | null, data: PaginationInterface<Video> | null) => void, options?: SubscribeToTaggedVideosOptions) => Disposer_2;
789
+
790
+ declare type SubscribeToTaggedVideosOptions = SubscribeToItemsInRowOptions & {
791
+ orderBy?: (Omit<OrderBy, 'field'> & {
792
+ field: TaggedVideosOrderByField;
793
+ })[];
794
+ where?: WhereFilter[];
795
+ };
796
+
548
797
  declare type SubscriptionInfo = {
549
798
  type: 'subscription';
550
799
  name: string;
@@ -564,6 +813,49 @@ export declare type SubscriptionOverlayState = {
564
813
  openSubscriptionOverlay: (data: SubscriptionOverlayData) => void;
565
814
  };
566
815
 
816
+ declare interface Tag extends RowItem {
817
+ id: string;
818
+ tagId: string;
819
+ type?: string | null;
820
+ metadata?: any[];
821
+ color?: string;
822
+ detailBanner?: string;
823
+ availableSeasons?: AvailableSeason[];
824
+ isFavorite: boolean;
825
+ addToFavorites: () => void;
826
+ removeFromFavorites: () => void;
827
+ }
828
+
829
+ declare type TaggedVideosOrderByField = 'seasonNumber' | 'episodeNumber' | 'contentType' | DefaultOrderByField;
830
+
831
+ declare type TileProps = {
832
+ cover: string;
833
+ isLoading: boolean;
834
+ bottomLabel: string;
835
+ bottomLabelAreaHeight: number;
836
+ innerLabel: string;
837
+ duration: string;
838
+ price: string | null;
839
+ focused: boolean;
840
+ onClick?: () => void;
841
+ hoverable: boolean;
842
+ overlay: boolean;
843
+ coverPadding: CoverPadding;
844
+ variant: RowItemComponent;
845
+ coverWidth: number;
846
+ progress?: number;
847
+ time?: string;
848
+ logo?: string;
849
+ coverHeight: number;
850
+ /**
851
+ * Margin of inner TileContainer.
852
+ * Now used for backward compatibility for WebTileGrid. Consider to use it other way.
853
+ */
854
+ containerMargin?: number | string;
855
+ };
856
+
857
+ declare type TilePropsPartial = Partial<TileProps>;
858
+
567
859
  export declare interface TivioAuth {
568
860
  changePassword: (newPassword: string) => Promise<void>;
569
861
  changeUserPhoto(file: File): Promise<void>;
@@ -927,6 +1219,31 @@ declare type TransactionInfo = {
927
1219
  description: string;
928
1220
  };
929
1221
 
1222
+ /**
1223
+ * Represents one string in every supported language mutation.
1224
+ */
1225
+ export declare type Translation = {
1226
+ [key in LangCode]: string;
1227
+ };
1228
+
1229
+ declare type TvAppProps = {
1230
+ customer: CUSTOMER_BUILD;
1231
+ };
1232
+
1233
+ declare interface TvChannel extends RowItem {
1234
+ name: string;
1235
+ id: string;
1236
+ path: string;
1237
+ itemType: ROW_ITEM_TYPES;
1238
+ country?: string;
1239
+ filters: string[];
1240
+ logo?: string;
1241
+ hls: string;
1242
+ dash: string;
1243
+ purchasableMonetization: any | null;
1244
+ price: number;
1245
+ }
1246
+
930
1247
  export declare const TvTivioProvider: React_2.FC<TivioProviderProps>;
931
1248
 
932
1249
  export declare const useAd: () => AdSource | null;
@@ -962,6 +1279,12 @@ export declare function useApplyInviteCode(): {
962
1279
 
963
1280
  export declare const useBetOffer: () => BetOffer | null;
964
1281
 
1282
+ declare type UseCancelSubscription = (subscriptionId: string) => {
1283
+ cancelSubscription: () => Promise<void>;
1284
+ cancellationInfo: QerkoCancellationInfo | null;
1285
+ error?: string | null;
1286
+ };
1287
+
965
1288
  export declare const useCancelSubscription: UseCancelSubscription;
966
1289
 
967
1290
  /**
@@ -984,6 +1307,11 @@ export declare const useChannelsInWidget: (widgetId: string, limit?: number) =>
984
1307
  isLoading: boolean;
985
1308
  };
986
1309
 
1310
+ declare type UseChannelSource = (tvChannelId: string) => {
1311
+ source: ChannelSource_2 | null;
1312
+ error: Error | null;
1313
+ };
1314
+
987
1315
  export declare const useCurrentMarker: () => Marker | null;
988
1316
 
989
1317
  export declare const useFreePurchase: () => {
@@ -1046,10 +1374,24 @@ export declare const usePurchaseSubscription: (monetizationId: string, voucher?:
1046
1374
  * Return purchases with initialized video (purchases[i].video not null)
1047
1375
  */
1048
1376
  export declare const usePurchasesWithVideos: () => {
1049
- purchases: Purchase_3[];
1377
+ purchases: Purchase_2[];
1050
1378
  };
1051
1379
 
1052
- export { User }
1380
+ export declare type User = {
1381
+ purchases: Purchase_2[];
1382
+ allPurchases: Purchase_2[];
1383
+ purchasedVods: Purchase_2[];
1384
+ purchasedSubscriptions: Purchase_2[];
1385
+ isPurchasesInitialized: boolean;
1386
+ isSignedIn: boolean;
1387
+ email?: string;
1388
+ type?: UserType;
1389
+ photoURL: string | null;
1390
+ name?: string;
1391
+ authUserId?: string;
1392
+ favorites: any[];
1393
+ watchedPositions: any[];
1394
+ };
1053
1395
 
1054
1396
  export declare const useRowsInScreen: (screenId: string, options?: PaginationOptions) => {
1055
1397
  pagination: PaginationInterface<Row> | null;
@@ -1058,6 +1400,11 @@ export declare const useRowsInScreen: (screenId: string, options?: PaginationOpt
1058
1400
 
1059
1401
  export declare type UserPayload = Record<string, any>;
1060
1402
 
1403
+ declare enum UserType {
1404
+ ORGANIZATION_USER = "ORGANIZATION_USER",
1405
+ TIVIO_USER = "TIVIO_USER"
1406
+ }
1407
+
1061
1408
  /**
1062
1409
  * @deprecated
1063
1410
  *
@@ -1071,6 +1418,14 @@ export declare const useScreens: () => {
1071
1418
  screens: Screen_2[];
1072
1419
  };
1073
1420
 
1421
+ declare type UseSearch = <T extends ALGOLIA_INDEX_NAME>(indexName: T, options?: UseSearchOptions) => {
1422
+ search: (query: string) => void;
1423
+ pagination: PaginationInterface<UseSearchResult<T>> | null;
1424
+ error: Error | null;
1425
+ isLoading: boolean;
1426
+ lastQuery: string;
1427
+ };
1428
+
1074
1429
  /**
1075
1430
  * Full text search that returns entities based on search query.
1076
1431
  * @param indexName - index that search would be performed on ('videos', 'tags', etc.)
@@ -1078,6 +1433,12 @@ export declare const useScreens: () => {
1078
1433
  */
1079
1434
  export declare const useSearch: UseSearch;
1080
1435
 
1436
+ declare type UseSearchOptions = PaginationOptions & Partial<{
1437
+ minQueryLength: number;
1438
+ }>;
1439
+
1440
+ 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;
1441
+
1081
1442
  /**
1082
1443
  * Use section
1083
1444
  * @param sectionId - section id
@@ -1116,8 +1477,14 @@ export declare const useTivioReadyData: () => RemoteBundleState | null;
1116
1477
 
1117
1478
  export declare const useTransactionPayment: (videoId: string, monetizationId: string, voucher?: NewVoucher | undefined) => QerkoTransaction;
1118
1479
 
1480
+ declare type UseTvChannel = (tvChannelId: string) => {
1481
+ tvChannel: TvChannel | null;
1482
+ error: Error | null;
1483
+ loading: boolean;
1484
+ };
1485
+
1119
1486
  export declare const useUser: () => {
1120
- user: User_2 | null;
1487
+ user: User | null;
1121
1488
  error: string | null;
1122
1489
  isInitialized: boolean;
1123
1490
  };
@@ -1170,7 +1537,72 @@ export declare const useWidget: (widgetId: string) => {
1170
1537
  widget: Widget | null;
1171
1538
  };
1172
1539
 
1173
- export { Video }
1540
+ export declare interface Video extends RowItem {
1541
+ id: string;
1542
+ /**
1543
+ * @deprecated use assets instead
1544
+ */
1545
+ cover: string | null;
1546
+ created: Date;
1547
+ sectionId: string | null;
1548
+ channelId: string | null;
1549
+ /**
1550
+ * seconds
1551
+ */
1552
+ duration: number;
1553
+ path: string;
1554
+ tags: Tag[];
1555
+ image: string | null;
1556
+ isPlayable: boolean;
1557
+ monetizations: Monetization[];
1558
+ monetization: Monetization | undefined;
1559
+ transactionId?: string;
1560
+ transaction: Monetization | undefined;
1561
+ subscriptions: Monetization[];
1562
+ subscriptionIds: string[];
1563
+ isPlaylist: boolean;
1564
+ name: string;
1565
+ description?: string;
1566
+ price: number | null;
1567
+ detailedPrice: DetailedPrice | null;
1568
+ uri: string;
1569
+ url: string;
1570
+ adMonetizationId?: string;
1571
+ from?: Date;
1572
+ to?: Date;
1573
+ detailBanner?: string;
1574
+ linkedVideosRaw: any[];
1575
+ linkedVideos: LinkedVideo[];
1576
+ purchasableMonetization: any | null;
1577
+ contentType: VideoContentType | null;
1578
+ year?: number;
1579
+ episodeNumber?: number;
1580
+ seasonNumber?: number;
1581
+ getTagsOfType: (type: string) => Tag[];
1582
+ loadLinkedVideos: () => any;
1583
+ getLinkedVideos: (type: any) => any;
1584
+ trailer: Video | null;
1585
+ watchPosition: number | null;
1586
+ isFavorite: boolean;
1587
+ addToFavorites: () => void;
1588
+ removeFromFavorites: () => void;
1589
+ availability: VideoAvailabilityField | null;
1590
+ }
1591
+
1592
+ declare type VideoAvailabilityField = {
1593
+ from: firebase_2.firestore.Timestamp;
1594
+ to: firebase_2.firestore.Timestamp | null;
1595
+ manual: boolean;
1596
+ };
1597
+
1598
+ declare enum VideoContentType {
1599
+ /**
1600
+ * Default video content type
1601
+ */
1602
+ VIDEO = "VIDEO",
1603
+ FILM = "FILM",
1604
+ SERIES = "SERIES"
1605
+ }
1174
1606
 
1175
1607
  declare type VideoPath = string;
1176
1608
 
@@ -1264,6 +1696,24 @@ export declare interface WebPlayerProps {
1264
1696
  onPlayerControllerCreated?: (playerController: any) => void;
1265
1697
  }
1266
1698
 
1699
+ declare type WebRowProps = {
1700
+ items?: ItemsInRow[];
1701
+ variant?: RowItemComponent;
1702
+ rowName?: string;
1703
+ fetchMore?: () => void;
1704
+ onTileClick?: (item: ItemsInRow) => void;
1705
+ };
1706
+
1707
+ declare type WebSeriesDetailScreenProps = {
1708
+ tagId: string;
1709
+ };
1710
+
1711
+ declare interface WhereFilter {
1712
+ field: string;
1713
+ operator: WhereFilterOp;
1714
+ value: any;
1715
+ }
1716
+
1267
1717
  export declare type Widget = {
1268
1718
  id: string;
1269
1719
  channels: Channel[];