@tivio/sdk-react 9.7.1 → 10.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.
package/dist/index.d.ts CHANGED
@@ -1,17 +1,14 @@
1
- import { AD_SERVICE_PROXY_NAME } from '@tivio/common';
2
1
  import type { ComponentType } from 'react';
3
- import type dayjs from 'dayjs';
4
2
  import { DocumentReference } from '@firebase/firestore-types';
5
3
  import type duration from 'dayjs/plugin/duration';
6
4
  import type { default as firebase_2 } from '@firebase/app-types';
7
5
  import type { default as firebase_3 } from 'firebase';
8
6
  import { FunctionComponentElement } from 'react';
9
7
  import type { GeoPoint } from '@firebase/firestore-types';
10
- import type { google } from '@alugha/ima';
11
8
  import { OperatingSystem } from 'detect-browser';
12
9
  import type { PaletteType } from '@material-ui/core';
13
10
  import { default as React_2 } from 'react';
14
- import { RecommendationsQuery } from '@algolia/recommend';
11
+ import type { RecommendationsQuery } from '@algolia/recommend';
15
12
  import type { TagManagerArgs } from 'react-gtm-module';
16
13
  import type { Timestamp } from '@firebase/firestore-types';
17
14
 
@@ -36,8 +33,6 @@ declare interface actualPriceDetails {
36
33
  currency?: primaSupportedCurrency;
37
34
  }
38
35
 
39
- export { AD_SERVICE_PROXY_NAME }
40
-
41
36
  export declare type AdBannerScene = InteractiveWidgetSceneBase<InteractiveWidgetSceneTemplateType.AD_BANNER>;
42
37
 
43
38
  export declare type AddEditCommentResponse = {
@@ -89,6 +84,14 @@ export declare interface AdExternal {
89
84
  skip: () => void;
90
85
  }
91
86
 
87
+ /**
88
+ * External information of Ad video.
89
+ * @public
90
+ */
91
+ export declare interface AdExternals {
92
+ creativeId: string;
93
+ }
94
+
92
95
  /**
93
96
  * @public
94
97
  */
@@ -104,7 +107,6 @@ export declare type AdMetadata = {
104
107
  isSkippable: boolean;
105
108
  order: number | null;
106
109
  totalCount: number | null;
107
- customAdMetadata?: Record<string, unknown>;
108
110
  skip: () => void;
109
111
  } | null;
110
112
 
@@ -222,10 +224,6 @@ export declare interface AdSourceInterface extends CommonSourceInterface<SourceT
222
224
  skipAll(): void;
223
225
  onRemainingTimeChanged(ms: number): void;
224
226
  click(): void;
225
- /**
226
- * Rich IMA ad metadata including customAdMetadata (only available for IMA ads)
227
- */
228
- imaAdMetadata?: any;
229
227
  }
230
228
 
231
229
  /**
@@ -323,7 +321,9 @@ export declare enum AnalyticsConversionPage {
323
321
  Redeem = "redeem",
324
322
  Referral = "referral",
325
323
  Pair = "pair",
326
- Search = "search"
324
+ Search = "search",
325
+ QerkoPayment = "qerko-payment",
326
+ SubscriptionCard = "subscription-card"
327
327
  }
328
328
 
329
329
  /**
@@ -341,6 +341,31 @@ export declare enum AnalyticsConversionTargetBase {
341
341
  Monetization = "monetization"
342
342
  }
343
343
 
344
+ export declare enum AnalyticsElementId {
345
+ BTN_LOGIN = "stargaze-btn-login",
346
+ BTN_REGISTRATION = "stargaze-btn-registration",
347
+ BTN_SUBSCRIBE = "stargaze-btn-subscribe",
348
+ BTN_FOLLOW = "stargaze-btn-follow",
349
+ BTN_CHOOSE_SUBSCRIPTION = "stargaze-btn-choose-subscription",
350
+ BTN_CANCEL_SUBSCRIPTION = "stargaze-btn-cancel-subscription",
351
+ BTN_RENEW_SUBSCRIPTION = "stargaze-btn-renew-subscription",
352
+ BTN_CHANGE_SUBSCRIPTION = "stargaze-btn-change-subscription",
353
+ BTN_GIFT_VOUCHER = "stargaze-btn-gift-voucher",
354
+ BTN_BUY_SUBSCRIPTION = "stargaze-btn-buy-subscription",
355
+ BTN_PAY_BY_APPLE_PAY = "stargaze-btn-pay-by-apple-pay",
356
+ BTN_PAY_BY_GOOGLE_PAY = "stargaze-btn-pay-by-google-pay",
357
+ BTN_PAY_BY_CARD = "stargaze-btn-pay-by-card",
358
+ BTN_PAY_WITH_PAYPAL = "stargaze-btn-pay-with-paypal",
359
+ BTN_PAY_BY_QERKO = "stargaze-btn-pay-by-qerko",
360
+ BTN_ACTIVATE_VOUCHER = "stargaze-btn-activate-voucher",
361
+ BTN_ACTIVATE_VOUCHER_OVERLAY = "stargaze-btn-activate-voucher-overlay",
362
+ BTN_ACTIVATE_VOUCHER_PROFILE = "stargaze-btn-activate-voucher-profile",
363
+ BTN_GO_TO_REDEEM_PAGE = "stargaze-btn-go-to-redeem-page",
364
+ BTN_REDEEM_CODE = "stargaze-btn-redeem-code",
365
+ BTN_CONTINUE_TO_PAYMENT = "stargaze-btn-continue-to-payment",
366
+ BTN_SELECT_MONETIZATION = "stargaze-btn-select-monetization"
367
+ }
368
+
344
369
  export declare interface AnalyticsInterface {
345
370
  reportAdvertisementPlay: (params: AdvertisementAnalyticParams) => void;
346
371
  reportAdvertisementProgress: () => void;
@@ -537,7 +562,7 @@ export declare interface AssetsField<TAsset extends ScalableAsset = ScalableAsse
537
562
  /**
538
563
  * @public
539
564
  */
540
- export declare type AssetType = 'circled' | 'landscape' | 'portrait' | 'square';
565
+ export declare type AssetType = 'banner' | 'circled' | 'landscape' | 'portrait' | 'square';
541
566
 
542
567
  declare type Attributes = {
543
568
  created: string;
@@ -624,10 +649,78 @@ export declare interface BannerProps {
624
649
  */
625
650
  export declare type BannerPropsPartial = Partial<BannerProps>;
626
651
 
652
+ /**
653
+ * Base row interface with common fields
654
+ * @public
655
+ */
656
+ export declare interface BaseRow {
657
+ id: string;
658
+ rowId: string;
659
+ name: string;
660
+ description?: string;
661
+ assets: AssetsField;
662
+ type: ScreenRowType;
663
+ isLiveRow: boolean;
664
+ organizationId?: string;
665
+ }
666
+
667
+ /**
668
+ * Base row type with fields common to all row types
669
+ */
670
+ declare type BaseRowInScreen = {
671
+ /**
672
+ * Firebase document path. If not provided, the row is not defined in db and is dynamically generated (e.g. recommendation row).
673
+ */
674
+ path?: string;
675
+ /**
676
+ * Tivio row ID.
677
+ */
678
+ rowId: string;
679
+ /**
680
+ * If all items are from the same organization this will be set.
681
+ */
682
+ organizationId?: string;
683
+ /**
684
+ * Row name.
685
+ */
686
+ name: Translation;
687
+ /**
688
+ * Row order in the screen.
689
+ */
690
+ order?: number;
691
+ /**
692
+ * Standard row or a Banner.
693
+ */
694
+ rowComponent: RowComponent;
695
+ /**
696
+ * Type of the row (continue to watch, custom, filter, static, ...).
697
+ */
698
+ type: ScreenRowType;
699
+ /**
700
+ * Assets for the row (images, videos, etc.)
701
+ */
702
+ assets?: AssetsField;
703
+ };
704
+
705
+ /**
706
+ * Base static row fields shared by all static row types
707
+ */
708
+ declare type BaseStaticRowInScreen = BaseRowInScreen & {
709
+ type: 'static';
710
+ };
711
+
627
712
  declare interface BaseWidgetControlPayload {
628
713
  widgetPath: string;
629
714
  }
630
715
 
716
+ export declare interface BenefitItem {
717
+ iconType: 'Verified' | 'Badge' | 'Clock' | 'Trending' | 'Message' | 'Eye' | 'Info' | 'Chart' | 'Users' | 'Zap' | 'Star' | 'Email' | 'Discord';
718
+ name: Translation;
719
+ description?: Translation;
720
+ }
721
+
722
+ export declare type BenefitTileSpecificData = BenefitItem;
723
+
631
724
  /**
632
725
  * @public
633
726
  */
@@ -676,6 +769,45 @@ export declare const bundlePromise: Promise<RemoteBundleState>;
676
769
  */
677
770
  export declare type Callback<T = any> = (arg?: T) => void;
678
771
 
772
+ /**
773
+ * Camera switch transition progress information.
774
+ * Tracks the state of buffer loading during camera switches in interactive streaming.
775
+ * @public
776
+ */
777
+ export declare interface CameraSwitchProgress {
778
+ /**
779
+ * Whether a camera switch is currently in progress
780
+ */
781
+ isActive: boolean;
782
+ /**
783
+ * Time position (in seconds) where the transition content will begin.
784
+ * This is after any currently loading chunks finish.
785
+ */
786
+ transitionStartTime: number;
787
+ /**
788
+ * Number of segments that need to load before transition is ready
789
+ */
790
+ segmentsToLoad: number;
791
+ /**
792
+ * Number of segments that have already loaded
793
+ */
794
+ segmentsLoaded: number;
795
+ /**
796
+ * Progress percentage (0-1) of the transition loading
797
+ */
798
+ progress: number;
799
+ /**
800
+ * Estimated time remaining until camera switch completes (in seconds)
801
+ * Based on segment duration and remaining segments
802
+ */
803
+ estimatedTimeRemaining: number;
804
+ /**
805
+ * ID of the secondary source this transition is for.
806
+ * Used to track multiple camera switches in quick succession.
807
+ */
808
+ secondarySourceId?: string;
809
+ }
810
+
679
811
  export declare interface CancellingMonetizationsSummaryItem {
680
812
  date: number;
681
813
  monetizationId: string;
@@ -750,6 +882,10 @@ export declare interface ChannelSourceParams extends PlayerSourceParams<SourceTy
750
882
  from: Date;
751
883
  to: Date;
752
884
  tvMode?: TvMode | 'live' | null;
885
+ /**
886
+ * Current program from EPG. Available for VIRTUAL and SCHEDULED channels.
887
+ */
888
+ currentProgram?: TvProgram | null;
753
889
  }
754
890
 
755
891
  /**
@@ -819,12 +955,6 @@ export declare interface CommonSourceParams<T extends SourceType = SourceType> {
819
955
  videoPath?: string;
820
956
  }
821
957
 
822
- /**
823
- * @public
824
- * Re-export of Google IMA CompanionAd type for use throughout the SDK
825
- */
826
- export declare type CompanionAd = google.ima.CompanionAd;
827
-
828
958
  /**
829
959
  * Just another alias. Reexported for backward compatibility.
830
960
  * @public
@@ -884,6 +1014,13 @@ export declare interface ContentAvailability {
884
1014
  manual: boolean;
885
1015
  }
886
1016
 
1017
+ export declare type ContentMetadataFieldId = keyof NonNullable<OrganizationSettingsField['contentMetadata']>;
1018
+
1019
+ export declare interface ContentMetadataOptions {
1020
+ enabled: boolean;
1021
+ order: number;
1022
+ }
1023
+
887
1024
  /**
888
1025
  * @public
889
1026
  */
@@ -1141,10 +1278,23 @@ export declare interface CreatorsWithVoucherSubscriptions {
1141
1278
  name: string;
1142
1279
  }
1143
1280
 
1281
+ export declare interface CtaBannerExtendRowData {
1282
+ variant?: 'light' | 'dark';
1283
+ heading?: Translation;
1284
+ subtitle?: {
1285
+ text: Translation;
1286
+ showIcon?: boolean;
1287
+ };
1288
+ button?: {
1289
+ href: string;
1290
+ text: Translation;
1291
+ };
1292
+ }
1293
+
1144
1294
  /**
1145
1295
  * @public
1146
1296
  */
1147
- export declare const CURRENCIES: string[];
1297
+ export declare const CURRENCIES: Currency[];
1148
1298
 
1149
1299
  /**
1150
1300
  * Three upper-case letters according to ISO-4217.
@@ -1158,6 +1308,11 @@ export declare type Currency = 'CZK' | 'EUR' | 'USD' | 'PLN';
1158
1308
  */
1159
1309
  export declare type CurrencyLowerCase = 'czk' | 'eur' | 'usd' | 'pln';
1160
1310
 
1311
+ /**
1312
+ * @public
1313
+ */
1314
+ export declare const CurrencyToTitle: Record<Currency, string>;
1315
+
1161
1316
  export declare interface CurrentQuestion {
1162
1317
  id: string;
1163
1318
  question: Translation;
@@ -1237,14 +1392,27 @@ export declare enum CustomerId {
1237
1392
  UZ_BUDU = "UZ_BUDU",
1238
1393
  PRIMA = "PRIMA",
1239
1394
  NORA_FRIDRICHOVA = "NORA_FRIDRICHOVA",
1240
- LONGEVITY = "LONGEVITY"
1395
+ LONGEVITY = "LONGEVITY",
1396
+ ZASAHTV = "ZASAHTV",
1397
+ ELISKAFLOW = "ELISKAFLOW",
1398
+ PRIJIMACKY = "PRIJIMACKY",
1399
+ PADNI_KOMU_PADNI = "PADNI_KOMU_PADNI",
1400
+ KRYPTOSPACE = "KRYPTOSPACE",
1401
+ ERADIX = "ERADIX",
1402
+ VLADCI_PRAHY = "VLADCI_PRAHY",
1403
+ DOKTOR_EVZEN = "DOKTOR_EVZEN",
1404
+ INVESTUJ_CHYTRE = "INVESTUJ_CHYTRE",
1405
+ RESTART_MUZE = "RESTART_MUZE",
1406
+ THE_JOHNY = "THE_JOHNY",
1407
+ GOOD_MOVE = "GOOD_MOVE",
1408
+ JANA_HANZ = "JANA_HANZ",
1409
+ MYSTICO = "MYSTICO"
1241
1410
  }
1242
1411
 
1243
1412
  export declare interface CustomScript {
1244
1413
  src: string;
1245
1414
  event?: EventName;
1246
1415
  isAsync?: boolean;
1247
- defer?: boolean;
1248
1416
  }
1249
1417
 
1250
1418
  /**
@@ -1262,6 +1430,11 @@ declare type Data = {
1262
1430
  type: 'tier' | 'member' | 'user';
1263
1431
  };
1264
1432
 
1433
+ /**
1434
+ * @public
1435
+ */
1436
+ export declare const DEFAULT_CURRENCY: Currency;
1437
+
1265
1438
  /**
1266
1439
  * @public
1267
1440
  */
@@ -1304,6 +1477,28 @@ export declare type DeviceInfo = ArrisDeviceInfo | ReactNativeDeviceInfo;
1304
1477
  */
1305
1478
  export declare type DeviceOs = OperatingSystem | 'Tizen' | 'webOS' | 'Arris' | 'Android TV' | 'tvOS';
1306
1479
 
1480
+ /**
1481
+ * User consent status for a specific purpose.
1482
+ */
1483
+ export declare interface DidomiPurposeStatus {
1484
+ enabled: boolean;
1485
+ }
1486
+
1487
+ /**
1488
+ * Didomi SDK API.
1489
+ */
1490
+ export declare interface DidomiSDK {
1491
+ getCurrentUserStatus(): DidomiUserStatus;
1492
+ }
1493
+
1494
+ /**
1495
+ * User consent status returned by Didomi SDK.
1496
+ */
1497
+ export declare interface DidomiUserStatus {
1498
+ purposes: Record<string, DidomiPurposeStatus>;
1499
+ consent_string?: string;
1500
+ }
1501
+
1307
1502
  /**
1308
1503
  * Window object with Didomi SDK properties.
1309
1504
  */
@@ -1319,6 +1514,10 @@ export declare interface DidomiWindow {
1319
1514
  * https://developers.didomi.io/cmp/web-sdk/reference/api
1320
1515
  */
1321
1516
  didomiOnReady: (() => void)[];
1517
+ /**
1518
+ * The Didomi SDK instance.
1519
+ */
1520
+ Didomi: DidomiSDK;
1322
1521
  }
1323
1522
 
1324
1523
  /**
@@ -1339,6 +1538,47 @@ export declare interface DividerProps {
1339
1538
  horizontalSpacing?: number;
1340
1539
  }
1341
1540
 
1541
+ export declare interface DocumentTileData<ItemSpecificData extends DocumentTileItemSpecificData = DocumentTileItemSpecificData> {
1542
+ /**
1543
+ * Tile item ID.
1544
+ */
1545
+ id: string;
1546
+ /**
1547
+ * Timestamp of the item creation.
1548
+ */
1549
+ created: number;
1550
+ /**
1551
+ * Type of the tile. VIDEO, TV_CHANNEL, TAG, ...
1552
+ */
1553
+ itemType: ROW_ITEM_TYPES;
1554
+ /**
1555
+ * Tile item name translation.
1556
+ */
1557
+ name: Translation;
1558
+ /**
1559
+ * Firestore path to the item.
1560
+ */
1561
+ path: string;
1562
+ /**
1563
+ * Application info including logo, name and number of videos.
1564
+ */
1565
+ application?: TileApplicationData;
1566
+ /**
1567
+ * Specific data for an item type (e.g. video, tv channel, tag, ...).
1568
+ */
1569
+ itemSpecificData: ItemSpecificData;
1570
+ /**
1571
+ * Optional label to display in the top-right corner of the tile (e.g., "Exclusive").
1572
+ */
1573
+ topLabel?: Translation;
1574
+ /**
1575
+ * CSS color for the topLabel background. Defaults to white.
1576
+ */
1577
+ topLabelColor?: string;
1578
+ }
1579
+
1580
+ export declare type DocumentTileItemSpecificData = VideoTileSpecificData | TvChannelTileSpecificData | TagTileSpecificData | ArticleTileSpecificData | SeriesTileSpecificData;
1581
+
1342
1582
  export declare interface Drm {
1343
1583
  encryption: VideoSourceEncryption;
1344
1584
  /**
@@ -1411,6 +1651,91 @@ export declare interface DurationWithUnit {
1411
1651
  unit: DurationUnit;
1412
1652
  }
1413
1653
 
1654
+ /**
1655
+ * Row components available for dynamic rows (filter, custom, topWatched, etc.)
1656
+ * Matches the rowComponent constraint in DynamicRow type definition
1657
+ * @public
1658
+ */
1659
+ export declare const DYNAMIC_ROW_COMPONENTS: readonly [RowComponent.ROW, RowComponent.BANNER];
1660
+
1661
+ /**
1662
+ * Dynamic row (filter, custom, continueToWatch, etc.) - has itemComponent and dynamic fields
1663
+ * Uses standard ROW or BANNER components
1664
+ * @public
1665
+ */
1666
+ export declare interface DynamicRow extends BaseRow {
1667
+ type: Exclude<ScreenRowType, 'static'>;
1668
+ numberOfLines?: number;
1669
+ monetizations?: Array<{
1670
+ monetizationRef: {
1671
+ id: string;
1672
+ path: string;
1673
+ };
1674
+ } | RowMonetizationData>;
1675
+ rowComponent: RowComponent.ROW | RowComponent.BANNER;
1676
+ itemComponent: RowItemComponent | BannerItemComponent;
1677
+ organizationId?: string;
1678
+ bottomComponent?: BottomComponent;
1679
+ showDescriptionAsTitle?: boolean;
1680
+ hideTitle?: boolean;
1681
+ externalUrl?: string;
1682
+ playButtonTitle?: string;
1683
+ tiles: PaginationInterface<ItemInRow>;
1684
+ /**
1685
+ * Side Banner specific configuration
1686
+ */
1687
+ sideBannerImagePosition?: 'left' | 'right';
1688
+ backgroundColor?: string;
1689
+ }
1690
+
1691
+ /**
1692
+ * Dynamic row type with dynamic-specific fields
1693
+ */
1694
+ export declare type DynamicRowInScreen = BaseRowInScreen & {
1695
+ type: Exclude<ScreenRowType, 'static'>;
1696
+ /**
1697
+ * Row filter based on which to pick tiles.
1698
+ */
1699
+ filter?: RowFilterField;
1700
+ /**
1701
+ * Number of lines of the title.
1702
+ */
1703
+ numberOfLines?: number;
1704
+ /**
1705
+ * Component to use to render the tiles in the row.
1706
+ */
1707
+ itemComponent: RowItemComponent | BannerItemComponent;
1708
+ /**
1709
+ * Items to display in the row.
1710
+ */
1711
+ tiles: GetTilesInRowResponse<DynamicScreenRowType>;
1712
+ /**
1713
+ * Setting for decided what to show bellow the tiles
1714
+ */
1715
+ bottomComponent?: BottomComponent;
1716
+ /**
1717
+ * Setting for decided whether to show description instead of title in the tiles
1718
+ */
1719
+ showDescriptionAsTitle?: boolean;
1720
+ /**
1721
+ * Setting for decided whether to hide title in the tiles/banners
1722
+ */
1723
+ hideTitle?: boolean;
1724
+ /**
1725
+ * Link to external URL
1726
+ */
1727
+ externalUrl?: string;
1728
+ /**
1729
+ * Title of Play button
1730
+ */
1731
+ playButtonTitle?: Translation;
1732
+ };
1733
+
1734
+ /**
1735
+ * @public
1736
+ */
1737
+ export declare type DynamicScreenRowType = Exclude<ScreenRowType, 'static'>;
1738
+
1414
1739
  /**
1415
1740
  * @public
1416
1741
  */
@@ -1529,7 +1854,6 @@ export declare interface EmitterInterface {
1529
1854
  isSupported: (even: string) => boolean;
1530
1855
  addListener: <T = unknown>(event: string, cb: (value: T) => Empty_2) => void;
1531
1856
  removeListener: <T = unknown>(event: string, cb: (value: T) => Empty_2) => void;
1532
- emitEvent: (event: string, value?: unknown) => void;
1533
1857
  }
1534
1858
 
1535
1859
  /**
@@ -1554,6 +1878,17 @@ export declare type Events = {
1554
1878
  'on-error': Error;
1555
1879
  };
1556
1880
 
1881
+ export declare interface ExploreItem {
1882
+ title: Translation;
1883
+ description: Translation;
1884
+ button?: {
1885
+ href: string;
1886
+ text: Translation;
1887
+ };
1888
+ }
1889
+
1890
+ export declare type ExploreTileSpecificData = ExploreItem;
1891
+
1557
1892
  export declare interface ExtensionMetadata {
1558
1893
  purchaseStatus: CloudflareStreamingPurchaseStatus;
1559
1894
  activeVideoId?: string;
@@ -1567,22 +1902,12 @@ export declare type ExternalTvConfig = {
1567
1902
  splashScreenBackgroundColor?: string;
1568
1903
  };
1569
1904
 
1570
- export declare interface FavoriteTagWithData {
1571
- content: Tag;
1572
- type: 'tag';
1573
- }
1574
-
1575
- export declare interface FavoriteVideoWithData {
1576
- content: Video;
1577
- type: 'video';
1905
+ export declare interface FaqItem {
1906
+ question: Translation;
1907
+ answer: Translation;
1578
1908
  }
1579
1909
 
1580
- /**
1581
- * @public
1582
- */
1583
- export declare type FavoriteWithData = FavoriteVideoWithData | (FavoriteTagWithData & {
1584
- profileId?: string;
1585
- });
1910
+ export declare type FaqTileSpecificData = FaqItem;
1586
1911
 
1587
1912
  /**
1588
1913
  * @throws if fetch fails
@@ -1632,7 +1957,6 @@ export declare interface ForbiddenOnCallError extends GenericOnCallError {
1632
1957
  }
1633
1958
 
1634
1959
  export declare enum ForbiddenReason {
1635
- AD_BLOCKING = "AD_BLOCKING",
1636
1960
  MONETIZATION = "MONETIZATION",
1637
1961
  GEO_BLOCKING = "GEO_BLOCKING",
1638
1962
  EMAIL_ALREADY_EXISTS = "EMAIL_ALREADY_EXISTS",
@@ -1643,8 +1967,7 @@ export declare enum ForbiddenReason {
1643
1967
  NAME_CONTAINS_INVALID_CHAR = "NAME_CONTAINS_INVALID_CHAR",
1644
1968
  USER_ACCOUNT_LOCKED = "USER_ACCOUNT_LOCKED",
1645
1969
  USER_NOT_FOUND = "USER_NOT_FOUND",
1646
- UNSUPPORTED_BROWSER = "UNSUPPORTED_BROWSER",
1647
- ANONYMOUS_USER = "ANONYMOUS_USER"
1970
+ UNSUPPORTED_BROWSER = "UNSUPPORTED_BROWSER"
1648
1971
  }
1649
1972
 
1650
1973
  /**
@@ -1652,7 +1975,7 @@ export declare enum ForbiddenReason {
1652
1975
  */
1653
1976
  export declare type FrequencyInfo = {
1654
1977
  title: Translation;
1655
- unit: string;
1978
+ unit: MONETIZATION_FREQUENCY;
1656
1979
  value: number;
1657
1980
  };
1658
1981
 
@@ -1771,6 +2094,9 @@ export declare type GetPurchaseInfoResponse = {
1771
2094
  };
1772
2095
  };
1773
2096
 
2097
+ /**
2098
+ * Response type for getRowsInScreen
2099
+ */
1774
2100
  export declare type GetRowsInScreenResponse = PaginatedResponse<RowInScreen, 'screenId'>;
1775
2101
 
1776
2102
  export declare interface GetSourceUrlRequest {
@@ -1827,6 +2153,16 @@ export declare interface GetSourceUrlRequest {
1827
2153
  * Parameters related to ads.
1828
2154
  */
1829
2155
  adParams?: Record<string, string | number | undefined>;
2156
+ /**
2157
+ * Which platform the resulting source should support.
2158
+ * If not present, any source that has non-empty `platforms` will be filtered out from the result.
2159
+ */
2160
+ platform?: PLATFORM;
2161
+ /**
2162
+ * Device ID for device tracking on purchase documents.
2163
+ * Used to track which devices are accessing paid content.
2164
+ */
2165
+ deviceId?: string;
1830
2166
  }
1831
2167
 
1832
2168
  export declare interface GetSourceUrlResponse {
@@ -1872,15 +2208,7 @@ export declare interface GetSourceUrlResponse {
1872
2208
  sessionType?: VideoSourceField['sessionType'];
1873
2209
  }
1874
2210
 
1875
- export declare type GetTilesInRowResponse<U extends NextPageParamType = NextPageParamType> = PaginatedResponse<TileData, U>;
1876
-
1877
- export declare interface GetUserProfileDataOptions {
1878
- /**
1879
- * If true, the data will be returned for all user profiles.
1880
- * If false, the data will be returned only for the active user profile.
1881
- */
1882
- ignoreActiveUserProfile?: boolean;
1883
- }
2211
+ export declare type GetTilesInRowResponse<T extends ScreenRowType = ScreenRowType, U extends NextPageParamType = NextPageParamType> = PaginatedResponse<TileData<T>, U>;
1884
2212
 
1885
2213
  export declare interface GetUserRssUrlRequest {
1886
2214
  organizationId: string;
@@ -1892,64 +2220,12 @@ export declare interface GetUserRssUrlResponse {
1892
2220
  expiresAt?: number;
1893
2221
  }
1894
2222
 
1895
- export declare interface GetVideoAnalyticsErrorItem {
1896
- count: number;
1897
- timestamp: number;
1898
- errorMessage: string;
2223
+ export declare interface GetViewAnalyticsResponse {
2224
+ viewCountAnalytics: ViewCountItem[];
2225
+ topWatched: TopWatchItem[];
1899
2226
  }
1900
2227
 
1901
- export declare interface GetVideoAnalyticsErrorResult {
1902
- totalCount: number;
1903
- errors: Array<GetVideoAnalyticsErrorItem>;
1904
- }
1905
-
1906
- export declare interface GetVideoAnalyticsRequest {
1907
- contentId: string;
1908
- timestamp?: number;
1909
- userId?: string;
1910
- source?: string;
1911
- limit?: number;
1912
- errorLimit?: number;
1913
- errorTimestampFrom?: number;
1914
- }
1915
-
1916
- export declare interface GetVideoAnalyticsResponse {
1917
- state?: GetVideoAnalyticsResult;
1918
- quality?: GetVideoAnalyticsResult;
1919
- error?: GetVideoAnalyticsErrorResult;
1920
- localities?: unknown;
1921
- }
1922
-
1923
- export declare type GetVideoAnalyticsResult = {
1924
- [timestamp: string]: {
1925
- totalDuration: number;
1926
- values: Array<{
1927
- value: string;
1928
- duration: number;
1929
- percentage: number;
1930
- }>;
1931
- };
1932
- };
1933
-
1934
- export declare interface GetVideoAnalyticsViewsRequest {
1935
- contentId: string;
1936
- currentViewsIntervalMs: number;
1937
- timestamp?: number;
1938
- source?: string;
1939
- }
1940
-
1941
- export declare interface GetVideoAnalyticsViewsResponse {
1942
- previousViews?: number;
1943
- currentViews?: number;
1944
- totalViews?: number;
1945
- }
1946
-
1947
- export declare interface GetViewAnalyticsResponse {
1948
- viewCountAnalytics: ViewCountItem[];
1949
- topWatched: TopWatchItem[];
1950
- }
1951
-
1952
- export declare type GetViewsAnalyticsRequest = GetBaseAnalyticsRequest;
2228
+ export declare type GetViewsAnalyticsRequest = GetBaseAnalyticsRequest;
1953
2229
 
1954
2230
  export declare let globalSdkReactConfig: SdkReactConfig | undefined;
1955
2231
 
@@ -1962,6 +2238,22 @@ export declare enum GRID_TYPES {
1962
2238
  SERIES = "SERIES"
1963
2239
  }
1964
2240
 
2241
+ /**
2242
+ * @public
2243
+ */
2244
+ export declare interface HeroBannerProps {
2245
+ title: string;
2246
+ description?: string;
2247
+ cover: string;
2248
+ onPlayClick?: () => void;
2249
+ onWatchlistClick?: () => void;
2250
+ playButtonHref?: string;
2251
+ watchlistButtonHref?: string;
2252
+ playButtonText?: string;
2253
+ watchlistButtonText?: string;
2254
+ isFavorite?: boolean;
2255
+ }
2256
+
1965
2257
  /**
1966
2258
  * @public
1967
2259
  */
@@ -1970,6 +2262,61 @@ export declare interface HistoryContextData {
1970
2262
  backOrRedirectToRoot: (delta?: number) => void;
1971
2263
  }
1972
2264
 
2265
+ export declare interface HomepageBannerButton {
2266
+ href: string;
2267
+ text: Translation;
2268
+ variant: HomepageBannerButtonVariant;
2269
+ leftIcon?: HomepageBannerButtonIcon;
2270
+ /**
2271
+ * Controls when this button should be visible.
2272
+ * Defaults to 'always' if not specified.
2273
+ */
2274
+ visibility?: HomepageBannerButtonVisibility;
2275
+ }
2276
+
2277
+ export declare type HomepageBannerButtonIcon = 'play';
2278
+
2279
+ export declare type HomepageBannerButtonVariant = 'primary' | 'secondary';
2280
+
2281
+ /**
2282
+ * Visibility condition for banner buttons.
2283
+ * - 'always': Button is always visible (default)
2284
+ * - 'notSignedIn': Button is only visible when user is not signed in
2285
+ * - 'signedIn': Button is only visible when user is signed in
2286
+ */
2287
+ export declare type HomepageBannerButtonVisibility = 'always' | 'notSignedIn' | 'signedIn';
2288
+
2289
+ export declare interface HomepageBannerExtendRowData {
2290
+ /**
2291
+ * Main title displayed on the banner
2292
+ */
2293
+ title?: Translation;
2294
+ /**
2295
+ * Subtitle/tagline displayed below title
2296
+ */
2297
+ subtitle?: {
2298
+ text: Translation;
2299
+ showIcon?: boolean;
2300
+ };
2301
+ /**
2302
+ * Multiple lines of descriptive text for multiline display
2303
+ */
2304
+ descriptionLines?: Translation[];
2305
+ /**
2306
+ * Array of buttons to display on the banner
2307
+ */
2308
+ buttons?: HomepageBannerButton[];
2309
+ /**
2310
+ * Single background image asset (legacy, use backgroundAssets for random selection)
2311
+ */
2312
+ asset?: ScalableAsset;
2313
+ /**
2314
+ * Array of background assets for random selection per page load.
2315
+ * If provided, one will be randomly selected each time the banner loads.
2316
+ */
2317
+ backgroundAssets?: ScalableAsset[];
2318
+ }
2319
+
1973
2320
  export declare type IncludedItem = {
1974
2321
  attributes: {
1975
2322
  next_charge_date: string;
@@ -2005,10 +2352,23 @@ export declare interface IndexedTag extends IndexedObject {
2005
2352
  created: Date;
2006
2353
  name: Translation;
2007
2354
  description?: string;
2355
+ /**
2356
+ * True if the tag has assets (non-empty assets object).
2357
+ */
2358
+ hasAssets: boolean;
2359
+ /**
2360
+ * True if the tag has content (has videos or series episodes).
2361
+ */
2362
+ hasContent: boolean;
2008
2363
  /**
2009
2364
  * True if the tag is available in Tivio Pro (StarMe)
2010
2365
  */
2011
2366
  isTivioPro: boolean;
2367
+ /**
2368
+ * Parental guidance rating (e.g., "O", "07", "U", "7+")
2369
+ * Used for filtering content based on age restrictions for kids profiles
2370
+ */
2371
+ pgRating?: string;
2012
2372
  }
2013
2373
 
2014
2374
  /**
@@ -2054,6 +2414,11 @@ export declare interface IndexedVideo extends IndexedObject {
2054
2414
  defaultName: string;
2055
2415
  name: string | Translation;
2056
2416
  description: string | Translation;
2417
+ descriptionRich?: Translation;
2418
+ /**
2419
+ * EPG program-friendly name
2420
+ */
2421
+ shortName?: Translation;
2057
2422
  hide: boolean;
2058
2423
  isDuplicate: boolean;
2059
2424
  externals?: VideoExternals;
@@ -2072,14 +2437,21 @@ export declare interface IndexedVideo extends IndexedObject {
2072
2437
  * see https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/how-to/filter-by-attributes/#filter-by-null-or-missing-attributes.
2073
2438
  */
2074
2439
  monetizationAccessIds: string[] | false;
2440
+ /**
2441
+ * See {@link VideoDocument.pgRating}
2442
+ */
2443
+ pgRating?: string;
2444
+ /**
2445
+ * See {@link VideoDocument.contentDescriptors}
2446
+ */
2447
+ contentDescriptors?: string[];
2075
2448
  }
2076
2449
 
2077
- export declare type InputSourceParams = SourceParams | VodExternalMultiSourceParams;
2078
-
2079
2450
  export declare type IntegrationType = 'discord' | 'patreon';
2080
2451
 
2081
2452
  export declare interface InteractiveWidget<T extends InteractiveWidgetScene = InteractiveWidgetScene> {
2082
2453
  readonly id: string;
2454
+ readonly name: string;
2083
2455
  readonly path: string;
2084
2456
  readonly currentQuestion: CurrentQuestion | null;
2085
2457
  readonly status: QuizGameStatus;
@@ -2279,17 +2651,35 @@ export declare type ItemInRow = Tag | Video | TvChannel | Advertisement | Applic
2279
2651
  * @public
2280
2652
  */
2281
2653
  export declare interface JojExternals {
2654
+ /**
2655
+ * e.g. '19876'
2656
+ */
2282
2657
  tvProfiProgramId?: string;
2658
+ /**
2659
+ * e.g. 'S19876'
2660
+ */
2283
2661
  tvProfiContentId?: string;
2284
2662
  tvProfiSerialId?: string;
2663
+ /**
2664
+ * e.g. '70368744177695432'
2665
+ */
2285
2666
  contentId?: string;
2286
2667
  /**
2287
2668
  * Temporary contentId used only for live channel. The video is already encoded and stored in our storage
2288
2669
  * but is also stored on nangu platform to be used for live channel.
2289
2670
  */
2290
2671
  dvtvExtraContentId?: string;
2672
+ /**
2673
+ * e.g. 'W278510'
2674
+ */
2291
2675
  provysId?: string;
2676
+ /**
2677
+ * real provysId unlike provysId, e.g. '2-231027-0009'
2678
+ */
2292
2679
  tvProfiProvysId?: string;
2680
+ /**
2681
+ * e.g. 'W278510'
2682
+ */
2293
2683
  tvProfiHouseId?: string;
2294
2684
  tvProfiTitleOriginal?: string;
2295
2685
  tvProfiTitleSk?: string;
@@ -2315,7 +2705,20 @@ export declare enum LangCode {
2315
2705
  HU = "hu"
2316
2706
  }
2317
2707
 
2318
- export declare const LangCodeToTitle: Partial<Record<LangCode, string>>;
2708
+ export declare const LangCodeToCountryCodeMap: Partial<Record<LangCode, string>>;
2709
+
2710
+ export declare const LangCodeToCurrencyMap: Partial<Record<LangCode, Currency>>;
2711
+
2712
+ export declare const LangCodeToTitle: Record<LangCode, string>;
2713
+
2714
+ /**
2715
+ * Generic type for items that can be restricted to specific languages.
2716
+ * Use with filterByLanguageRestricted utility from @tivio/common.
2717
+ */
2718
+ export declare interface LanguageRestricted {
2719
+ /** By default is available in every language */
2720
+ availableIn?: LangCode[];
2721
+ }
2319
2722
 
2320
2723
  /**
2321
2724
  * All supported languages codes as in ISO 639-1
@@ -2510,11 +2913,35 @@ export declare enum LoginRedirect {
2510
2913
  REMOTE_CONTROLLER = "remote-controller"
2511
2914
  }
2512
2915
 
2916
+ declare interface ManageMemberDeleteRequest extends ManageMemberRequestBase {
2917
+ action: 'deleteMember';
2918
+ }
2919
+
2920
+ export declare type ManageMemberRequest = ManageMemberUpdateRoleRequest | ManageMemberDeleteRequest;
2921
+
2513
2922
  /**
2514
- * @public
2923
+ * Request body for manageMember cloud function.
2924
+ * Handles member management operations (role update, deletion) within an organization.
2515
2925
  */
2516
- export declare interface MallTvExternals {
2517
- mallTvEntityId: string;
2926
+ declare interface ManageMemberRequestBase {
2927
+ organizationId: string;
2928
+ targetMemberUid: string;
2929
+ }
2930
+
2931
+ /**
2932
+ * Response body for manageMember cloud function.
2933
+ */
2934
+ export declare interface ManageMemberResponse {
2935
+ success: boolean;
2936
+ }
2937
+
2938
+ declare interface ManageMemberUpdateRoleRequest extends ManageMemberRequestBase {
2939
+ action: 'updateRole';
2940
+ /**
2941
+ * New role for the target member.
2942
+ * Value corresponds to OrganizationMemberRoles enum from @tivio/firebase.
2943
+ */
2944
+ role: number;
2518
2945
  }
2519
2946
 
2520
2947
  /**
@@ -2578,11 +3005,37 @@ export declare enum MarkerType {
2578
3005
  NONE = "none"
2579
3006
  }
2580
3007
 
3008
+ /**
3009
+ * Tile data for MEDIA_ACCORDEON rows.
3010
+ * Contains id, name, and path for video references.
3011
+ * @public
3012
+ */
3013
+ export declare interface MediaAccordeonTileSpecificData {
3014
+ /**
3015
+ * Custom item ID for unique identification.
3016
+ */
3017
+ id: string;
3018
+ /**
3019
+ * Custom item name for display purposes.
3020
+ */
3021
+ name: Translation;
3022
+ /**
3023
+ * Firestore path to the video.
3024
+ */
3025
+ path: string;
3026
+ }
3027
+
2581
3028
  declare type Membership = {
2582
3029
  id: string;
2583
3030
  type: string;
2584
3031
  };
2585
3032
 
3033
+ export declare type MergeUserAccountsPayload = {
3034
+ email: string;
3035
+ name?: string;
3036
+ password: string;
3037
+ };
3038
+
2586
3039
  /**
2587
3040
  * @public
2588
3041
  */
@@ -2618,6 +3071,17 @@ export declare interface MessageUser {
2618
3071
  email: string;
2619
3072
  }
2620
3073
 
3074
+ export declare enum MetadataFieldId {
3075
+ NAME = "name",// always required
3076
+ SHORT_NAME = "shortName",// optional, fixed position (not sortable)
3077
+ DESCRIPTION = "description",// always required
3078
+ RICH_DESCRIPTION = "richDescription",// optional, fixed position (not sortable)
3079
+ TAGS = "tags",
3080
+ FILM_DETAILS = "filmDetails",
3081
+ AUDIENCE_LIMITATIONS = "audienceLimitations",
3082
+ PRODUCT_PLACEMENT = "productPlacement"
3083
+ }
3084
+
2621
3085
  /**
2622
3086
  * External information of video migrated via our Public API.
2623
3087
  * @public
@@ -2839,11 +3303,6 @@ declare type Notification_2 = {
2839
3303
  } & EmailNotification;
2840
3304
  export { Notification_2 as Notification }
2841
3305
 
2842
- export declare interface NotificationDuration {
2843
- value: number;
2844
- unit: dayjs.ManipulateType;
2845
- }
2846
-
2847
3306
  export declare type NotificationFilterType = NotificationFirestoreFilterType | NotificationSurveyFilterType | NotificationLastActivityFilterType;
2848
3307
 
2849
3308
  export declare type NotificationFirestoreFilterType = NotificationSubscriptionFilterType | NotificationMembershipFilterType;
@@ -2866,12 +3325,21 @@ export declare interface NotificationMembershipFilterType {
2866
3325
  };
2867
3326
  }
2868
3327
 
3328
+ /**
3329
+ * Lifecycle status of a notification.
3330
+ */
2869
3331
  export declare enum NotificationStatus {
3332
+ /** Automatic trigger types (e.g. purchaseStatusChange, duration, userRegistration); not manually or scheduled sent. */
2870
3333
  AUTOMATIC = "automatic",
3334
+ /** Editable, not yet scheduled or sent. Initial state; can transition to PLANNED when scheduled. */
2871
3335
  DRAFT = "draft",
3336
+ /** Scheduled (e.g. Cloud Task created for email, or push scheduled). For push, sending runs on DRAFT→PLANNED then status becomes SENT. */
2872
3337
  PLANNED = "planned",
3338
+ /** Notification has been sent. Set after push send and after email send for manual/scheduled. */
2873
3339
  SENT = "sent",
3340
+ /** Manual trigger saved and waiting to be sent (no lastSent yet). */
2874
3341
  WAITING = "waiting",
3342
+ /** Currently being sent (e.g. EmailSender sets RUNNING before sendEmails). Saving and re-sending are blocked while RUNNING. */
2875
3343
  RUNNING = "running"
2876
3344
  }
2877
3345
 
@@ -2905,6 +3373,17 @@ export declare interface NotificationTargeting {
2905
3373
  to?: Date;
2906
3374
  }
2907
3375
 
3376
+ /**
3377
+ * How the notification is triggered.
3378
+ * - **scheduled**: Sent at a fixed time (scheduleTime). Status becomes PLANNED when scheduled;
3379
+ * used with Cloud Tasks for email and for push when moving from DRAFT to PLANNED.
3380
+ * - **manual**: Sent on demand from the admin. Status is WAITING until sent, then SENT.
3381
+ * - **purchaseStatusChange**: Fired when a user's purchase/subscription status changes (before/after).
3382
+ * Matched by getNotificationByPurchaseStatuses; status is AUTOMATIC.
3383
+ * - **duration**: Time-based (e.g. subscription duration). Used by the daily email job (sendEmailsDaily)
3384
+ * via DurationEmailSender to target users by duration criteria.
3385
+ * - **userRegistration**: Fired when a user registers. Resolved by getNotificationUserRegistration.
3386
+ */
2908
3387
  export declare type NotificationTriggerType = 'scheduled' | 'manual' | 'purchaseStatusChange' | 'duration' | 'userRegistration';
2909
3388
 
2910
3389
  export declare enum NotificationType {
@@ -2919,6 +3398,13 @@ export declare type Nullable<T> = {
2919
3398
  [P in keyof T]: T[P] | null;
2920
3399
  };
2921
3400
 
3401
+ export declare interface NumberItem {
3402
+ value: string;
3403
+ description: Translation;
3404
+ }
3405
+
3406
+ export declare type NumbersTileSpecificData = NumberItem;
3407
+
2922
3408
  /**
2923
3409
  * @public
2924
3410
  */
@@ -2984,6 +3470,20 @@ export declare interface OrganizationSettingsField extends OrganizationResponsiv
2984
3470
  enabled: boolean;
2985
3471
  };
2986
3472
  allowedSignInProviders?: SignInProvider[];
3473
+ /**
3474
+ * Social authentication provider for this organization
3475
+ * 'auth0' - Use Auth0 for social login (Kviff)
3476
+ * 'firebase' - Use Firebase Auth for social login (default)
3477
+ */
3478
+ socialAuthProvider?: 'auth0' | 'firebase';
3479
+ /**
3480
+ * Auth0 configuration for organizations using Auth0 social login.
3481
+ * Only relevant when socialAuthProvider === 'auth0'.
3482
+ */
3483
+ auth0?: {
3484
+ domain: string;
3485
+ clientId: string;
3486
+ };
2987
3487
  disableComments?: boolean;
2988
3488
  /**
2989
3489
  * Used on CNC webs - When buying a yearly subscription the recalculated monthly price is display below the yearly price
@@ -3029,6 +3529,11 @@ export declare interface OrganizationSettingsField extends OrganizationResponsiv
3029
3529
  id: string;
3030
3530
  };
3031
3531
  };
3532
+ /**
3533
+ * With this setting, it's possible for the users to purchase with discounted price for the same monetization, if it expired before 1 month ago.
3534
+ * The logic can be found here: {@link apps/api/functions/src/model/purchase.ts}
3535
+ * At the same time `allowExpired: true` setting on a monetization variant will enable discounted variant if the user has active or expired purchase of monetizationRef.
3536
+ */
3032
3537
  cancelledSubscriptionDiscount?: {
3033
3538
  enabled: boolean;
3034
3539
  };
@@ -3044,6 +3549,28 @@ export declare interface OrganizationSettingsField extends OrganizationResponsiv
3044
3549
  pushNotifications?: {
3045
3550
  enabled?: boolean;
3046
3551
  };
3552
+ recommendations?: {
3553
+ videosNoOlderThan?: {
3554
+ unit: 'month';
3555
+ value: number;
3556
+ };
3557
+ };
3558
+ /**
3559
+ * Payment flow configuration
3560
+ * @default PaymentFlow.NEW
3561
+ */
3562
+ paymentFlow?: PaymentFlow;
3563
+ contentMetadata?: {
3564
+ [MetadataFieldId.SHORT_NAME]?: ContentMetadataOptions;
3565
+ [MetadataFieldId.RICH_DESCRIPTION]?: ContentMetadataOptions;
3566
+ [MetadataFieldId.TAGS]?: ContentMetadataOptions;
3567
+ [MetadataFieldId.FILM_DETAILS]?: ContentMetadataOptions;
3568
+ [MetadataFieldId.AUDIENCE_LIMITATIONS]?: ContentMetadataOptions;
3569
+ [MetadataFieldId.PRODUCT_PLACEMENT]?: ContentMetadataOptions;
3570
+ };
3571
+ aiProcessing?: {
3572
+ assets?: boolean;
3573
+ };
3047
3574
  }
3048
3575
 
3049
3576
  /**
@@ -3058,7 +3585,7 @@ export declare type OtherSource = SourceBase & StartAndContinuePosition & {
3058
3585
 
3059
3586
  export declare interface PaginatedResponse<T = unknown, U extends NextPageParamType = NextPageParamType> {
3060
3587
  items: T[];
3061
- nextPageParams: {
3588
+ nextPageParams: ({
3062
3589
  offset: number;
3063
3590
  limit: number;
3064
3591
  } & (U extends 'screenId' ? {
@@ -3070,7 +3597,7 @@ export declare interface PaginatedResponse<T = unknown, U extends NextPageParamT
3070
3597
  rowId: string;
3071
3598
  } : U extends 'filter' ? {
3072
3599
  filter: Omit<RowFilterField, 'limit'>;
3073
- } : {}) | null;
3600
+ } : object)) | null;
3074
3601
  }
3075
3602
 
3076
3603
  /**
@@ -3105,20 +3632,6 @@ export declare interface PartialRegistrationOverlayContextState {
3105
3632
  voucher?: string;
3106
3633
  }
3107
3634
 
3108
- /**
3109
- * @public
3110
- * Generic interface for sources that can be identified by a path (video or TV channel)
3111
- */
3112
- export declare type PathSourceParams = PathSourceParamsTvChannel | PathSourceParamsVideo;
3113
-
3114
- declare interface PathSourceParamsTvChannel extends Partial<ChannelSourceParams> {
3115
- path: `tvChannels/${string}`;
3116
- }
3117
-
3118
- declare interface PathSourceParamsVideo extends Partial<Omit<VodTivioSourceParams, 'videoPath'>> {
3119
- path: `videos/${string}`;
3120
- }
3121
-
3122
3635
  export declare type PatreonCreatorData = {
3123
3636
  campaign: string;
3124
3637
  tiers: Tier[];
@@ -3162,6 +3675,17 @@ export declare type PatreonUserResponse = {
3162
3675
  errors?: PatreonError[];
3163
3676
  };
3164
3677
 
3678
+ /**
3679
+ * @public
3680
+ *
3681
+ * - NEW: Automatically show payment overlay when tasting video ends (ContentIsPaidOverlay with poster)
3682
+ * - LEGACY: Old behavior - users must manually click to purchase, no automatic overlay
3683
+ */
3684
+ export declare enum PaymentFlow {
3685
+ NEW = "new",
3686
+ LEGACY = "legacy"
3687
+ }
3688
+
3165
3689
  /**
3166
3690
  * @public
3167
3691
  */
@@ -3289,6 +3813,8 @@ export declare interface PlayerEngineConfig {
3289
3813
  isAd?: boolean;
3290
3814
  positionMs?: number;
3291
3815
  url: string;
3816
+ sessionType?: SessionType;
3817
+ sourcePlayMode?: SourcePlayMode;
3292
3818
  }
3293
3819
 
3294
3820
  /**
@@ -3394,6 +3920,43 @@ export declare interface PlayerEngineInterface {
3394
3920
  selectPlaybackSpeed?: (playbackSpeed: number) => void;
3395
3921
  destroy(): Promise<void>;
3396
3922
  getBufferedInfo?(): BufferChunk[];
3923
+ /**
3924
+ * Clears buffered segments ahead of the current playback position.
3925
+ * Used during interactive streaming camera switches to enable faster content transition.
3926
+ *
3927
+ * @param safeMarginMs - Milliseconds of buffer to keep ahead of current position (default: 0)
3928
+ * @param secondarySourceId - Optional ID of the secondary source being switched to
3929
+ * @returns Promise that resolves when buffer clearing is complete
3930
+ */
3931
+ clearBufferAhead?(safeMarginMs?: number, secondarySourceId?: string): Promise<void>;
3932
+ /**
3933
+ * Sets the streaming profile to configure buffer behavior.
3934
+ * Use 'low' for interactive streaming with fast camera switches,
3935
+ * 'medium' for balanced behavior, 'high' for maximum stability.
3936
+ *
3937
+ * @param profile - The streaming profile to apply
3938
+ */
3939
+ setStreamingProfile?(profile: StreamingProfile): void;
3940
+ /**
3941
+ * Gets the current streaming profile.
3942
+ */
3943
+ getStreamingProfile?(): StreamingProfile;
3944
+ /**
3945
+ * Set whether to prefer native HLS playback over MSE.
3946
+ * This is required for AirPlay to work properly in Safari.
3947
+ * Must be called before play() to take effect.
3948
+ *
3949
+ * @param preferNativeHls - Whether to prefer native HLS playback
3950
+ */
3951
+ setPreferNativeHls?(preferNativeHls: boolean): void;
3952
+ /**
3953
+ * Reload the current source with the current configuration (including preferNativeHls).
3954
+ * This is a lightweight reload that doesn't go through the full playerWrapper source pipeline.
3955
+ * Used for switching between MSE and native HLS playback for AirPlay.
3956
+ *
3957
+ * @returns Promise that resolves when reload is complete
3958
+ */
3959
+ reloadCurrentConfig?(): Promise<void>;
3397
3960
  lastQuality: number | null;
3398
3961
  /**
3399
3962
  * Attribute indicating that the video is to be played "inline"
@@ -3496,6 +4059,19 @@ export declare interface PlayerInterface {
3496
4059
  */
3497
4060
  setPlaysInline?: (value: boolean) => void;
3498
4061
  setControlsList?: (value: string[]) => void;
4062
+ /**
4063
+ * Clears buffered segments ahead of the current playback position.
4064
+ * Used during interactive streaming camera switches to enable faster content transition.
4065
+ *
4066
+ * @param safeMarginMs - Milliseconds of buffer to keep ahead of current position (default: 0)
4067
+ * @returns Promise that resolves when buffer clearing is complete
4068
+ */
4069
+ clearBufferAhead?: (safeMarginMs?: number, secondarySourceId?: string) => Promise<void>;
4070
+ /**
4071
+ * Callback to receive camera switch progress updates.
4072
+ * Called by the engine during interactive streaming camera switches.
4073
+ */
4074
+ onCameraSwitchProgress?: (progress: CameraSwitchProgress) => void;
3499
4075
  }
3500
4076
 
3501
4077
  /**
@@ -3565,7 +4141,6 @@ export declare interface PlayerSourceInterface<T extends NonAdSourceType = NonAd
3565
4141
  start?: Date;
3566
4142
  from?: Date;
3567
4143
  sourceHistory?: string[];
3568
- staticAdsConfig?: StaticAdsBreak[];
3569
4144
  }
3570
4145
 
3571
4146
  /**
@@ -3584,7 +4159,6 @@ export declare interface PlayerSourceParams<T extends NonAdSourceType = NonAdSou
3584
4159
  seekingMatrix?: SeekingMatrixTemplate;
3585
4160
  sessionType?: VideoSourceField['sessionType'];
3586
4161
  sessionId?: string;
3587
- staticAdsConfig?: StaticAdsBreak[];
3588
4162
  }
3589
4163
 
3590
4164
  export declare type PlayersScene = InteractiveWidgetSceneBase<InteractiveWidgetSceneTemplateType.PLAYERS>;
@@ -3636,6 +4210,11 @@ export declare interface PlayerWrapper {
3636
4210
  availableLanguages: LangCode[] | null;
3637
4211
  canReplay: boolean;
3638
4212
  currentSecondarySource: Video | null;
4213
+ /**
4214
+ * Camera switch transition progress for interactive streaming.
4215
+ * Non-null when a camera switch is in progress.
4216
+ */
4217
+ cameraSwitchProgress: CameraSwitchProgress | null;
3639
4218
  currentTime: number;
3640
4219
  /**
3641
4220
  * Currently playing source
@@ -3686,6 +4265,10 @@ export declare interface PlayerWrapper {
3686
4265
  * Retry to play a video that failed to start playing (e.g. due to a network error)
3687
4266
  */
3688
4267
  retry: () => void;
4268
+ /**
4269
+ * Refresh the current source by calling getSourceUrl without sourceHistory.
4270
+ */
4271
+ refreshSource: () => Promise<void>;
3689
4272
  togglePlayPause: () => void;
3690
4273
  seekTo: (ms: number) => void;
3691
4274
  /**
@@ -3694,6 +4277,21 @@ export declare interface PlayerWrapper {
3694
4277
  setVolume: (volume: number) => void;
3695
4278
  changeLanguage: (langCode: LangCode) => Promise<void>;
3696
4279
  changeToFallbackSource: () => Promise<void>;
4280
+ /**
4281
+ * Switch to HLS source for AirPlay (Safari/iOS only).
4282
+ * Preserves current playback position.
4283
+ */
4284
+ switchToHlsForAirplay: () => Promise<void>;
4285
+ /**
4286
+ * Switch back to DASH from HLS after AirPlay disconnects.
4287
+ * Preserves current playback position.
4288
+ */
4289
+ switchToDashFromAirplay: () => Promise<void>;
4290
+ /**
4291
+ * Reload the current source while preserving playback position.
4292
+ * Used when switching between native HLS and MSE playback modes.
4293
+ */
4294
+ reloadCurrentSource: () => Promise<void>;
3697
4295
  /**
3698
4296
  * change volume by value between -1,1
3699
4297
  */
@@ -3718,10 +4316,20 @@ export declare interface PlayerWrapper {
3718
4316
  seekToLive: () => void;
3719
4317
  seekToLiveInternal: () => void;
3720
4318
  setIsBuffering: (isBuffering: boolean) => void;
4319
+ isCasting: boolean;
3721
4320
  setIsCasting: (isCasting: boolean) => void;
3722
4321
  skipAd: () => void;
3723
4322
  skipAllAds: () => void;
3724
4323
  switchSecondarySource: (activeVideoId?: string) => Promise<void>;
4324
+ /**
4325
+ * Set whether to prefer HLS sources over DASH.
4326
+ * Used in Safari/iOS when AirPlay is available, as AirPlay only supports HLS streaming.
4327
+ */
4328
+ setPreferHls: (preferHls: boolean) => void;
4329
+ /**
4330
+ * Suppress watermark tamper detection during AirPlay source switching.
4331
+ */
4332
+ setAirplaySwitching?: (isSwitching: boolean) => void;
3725
4333
  }
3726
4334
 
3727
4335
  /**
@@ -3746,19 +4354,7 @@ export declare enum PlayerWrapperEvents {
3746
4354
  /**
3747
4355
  * Un-pause was triggered
3748
4356
  */
3749
- 'unpause_triggered' = "unpause_triggered",
3750
- /**
3751
- * Triggered when an ad starts playing
3752
- */
3753
- 'ad-started' = "ad-started",
3754
- /**
3755
- * Triggered when an ad finishes playing
3756
- */
3757
- 'ad-ended' = "ad-ended",
3758
- /**
3759
- * Triggered when companion ads are available for the current ad
3760
- */
3761
- 'companion-ads' = "companion-ads"
4357
+ 'unpause_triggered' = "unpause_triggered"
3762
4358
  }
3763
4359
 
3764
4360
  /**
@@ -3786,6 +4382,20 @@ export declare type PlayerWrapperEventTypeType = `${PlayerWrapperEventType}`;
3786
4382
  */
3787
4383
  export declare type PrerollCheck = (source: PlayerSource) => Promise<AdSourceInterface | null>;
3788
4384
 
4385
+ export declare type PresentBannerExtendRowData = {
4386
+ name: Translation;
4387
+ subname?: Translation;
4388
+ description?: Translation;
4389
+ avatars?: ScalableAsset[];
4390
+ avatarsText?: Translation;
4391
+ asset?: ScalableAsset;
4392
+ buttons?: RowButton[];
4393
+ };
4394
+
4395
+ export declare type PricesField = {
4396
+ [currency in Currency]?: number | null;
4397
+ };
4398
+
3789
4399
  export declare enum primaPlusMonetizationLevel {
3790
4400
  light = "z7soJTA2dYSxnOOJw7B0",
3791
4401
  premium = "kwfM0D7Vzv5wfLf5go8o",
@@ -3884,8 +4494,9 @@ export declare interface ProgressMetadata {
3884
4494
  * @public
3885
4495
  */
3886
4496
  export declare interface Promotion {
4497
+ id?: string;
3887
4498
  duration?: Duration;
3888
- price?: number;
4499
+ prices?: PricesField;
3889
4500
  requiresPaymentAuthorization?: boolean;
3890
4501
  hideOtherSubscriptions?: boolean;
3891
4502
  }
@@ -3935,7 +4546,9 @@ export declare interface PurchasableMonetization extends Monetization {
3935
4546
  */
3936
4547
  price?: string | number;
3937
4548
  promotion: Promotion | null;
3938
- frequency?: MONETIZATION_FREQUENCY;
4549
+ frequency?: Omit<FrequencyInfo, 'title'> & {
4550
+ title: string;
4551
+ };
3939
4552
  frequencyInfo?: FrequencyInfo;
3940
4553
  durationDays?: number;
3941
4554
  /**
@@ -3975,7 +4588,30 @@ export declare interface PurchasableMonetization extends Monetization {
3975
4588
  * Number of seats left for the subscription.
3976
4589
  */
3977
4590
  seatsLeft?: number;
4591
+ /**
4592
+ * Trial period in milliseconds for the subscription.
4593
+ */
4594
+ trialPeriod?: number;
4595
+ /**
4596
+ * Maximum quantity of the subscription.
4597
+ */
3978
4598
  maxQuantity?: number;
4599
+ /**
4600
+ * Currency of the monetization price.
4601
+ */
4602
+ currency?: Currency;
4603
+ /**
4604
+ * Detailed price information, including currency and amount - Takes the price getter from purchsable monetization entity.
4605
+ */
4606
+ detailedPrice?: DetailedPrice;
4607
+ /**
4608
+ * Subtitle for the monetization, used in UI.
4609
+ */
4610
+ subtitle?: string;
4611
+ /**
4612
+ * Banner title for the monetization, used in UI.
4613
+ */
4614
+ bannerTitle?: string;
3979
4615
  }
3980
4616
 
3981
4617
  /**
@@ -4007,6 +4643,7 @@ export declare type Purchase = {
4007
4643
  monetization: PurchaseMonetization | null;
4008
4644
  monetizationId: string | null;
4009
4645
  monetizationRef: any | null;
4646
+ nextPaymentDate: Date | null;
4010
4647
  status: PurchaseStatus | null;
4011
4648
  type: PurchaseType | null;
4012
4649
  /**
@@ -4393,6 +5030,7 @@ export declare interface QerkoTransaction {
4393
5030
  paymentStatus: string | null;
4394
5031
  getPaymentInfo: () => Promise<void>;
4395
5032
  voucherId?: string;
5033
+ isLoading: boolean;
4396
5034
  }
4397
5035
 
4398
5036
  export declare type QRCodeScene = InteractiveWidgetSceneBase<InteractiveWidgetSceneTemplateType.QR_CODE>;
@@ -4421,7 +5059,7 @@ export declare interface QuestionRepository {
4421
5059
  readonly selectedAnswerId: string | undefined;
4422
5060
  isSubmitted: boolean;
4423
5061
  isSubmitting: boolean;
4424
- setCurrentQuestion: (question: CurrentQuestion | null, role: QuizGameRole, secondsToAnswer: number, shouldEnterAtTimestampMs?: number) => void;
5062
+ setCurrentQuestion: (question: CurrentQuestion | null, role: QuizGameRole, secondsToAnswer: number, shouldEnterAtTimestampMs?: number, shouldAdjustEndTimestampMs?: boolean) => void;
4425
5063
  selectAnswer: (answerId: string | undefined) => void;
4426
5064
  setShowCountdown: (showCountdown: boolean) => void;
4427
5065
  reset: () => void;
@@ -4662,6 +5300,16 @@ export declare type RequiredNonNullable<T> = {
4662
5300
  [P in keyof T]-?: NonNullable<T[P]>;
4663
5301
  };
4664
5302
 
5303
+ export declare interface ReviewItem {
5304
+ asset: ScalableAsset;
5305
+ name: Translation;
5306
+ subname?: Translation;
5307
+ rating: 1 | 2 | 3 | 4 | 5;
5308
+ description?: Translation;
5309
+ }
5310
+
5311
+ export declare type ReviewTileSpecificData = ReviewItem;
5312
+
4665
5313
  /**
4666
5314
  * @public
4667
5315
  */
@@ -4684,6 +5332,7 @@ export declare interface RouterOverrides {
4684
5332
  gridType: GRID_TYPES.ROW;
4685
5333
  rowId: string;
4686
5334
  organizationId?: string;
5335
+ applicationHandle?: string;
4687
5336
  } | {
4688
5337
  gridType: GRID_TYPES.VIDEO;
4689
5338
  videoId: string;
@@ -4715,6 +5364,7 @@ export declare interface RouterOverrides {
4715
5364
  goToRecommendedFromOrganizationRow: (screenId: string, rowId: string) => void;
4716
5365
  goToMagentaMomentsPage: (voucher?: string) => void;
4717
5366
  goToVoucherRedeemPage: () => void;
5367
+ goToSubscriptionsPage: (organizationHandle?: string) => void;
4718
5368
  updateParams: (params: URLSearchParams) => void;
4719
5369
  navigate: (path: string) => void;
4720
5370
  }
@@ -4733,25 +5383,7 @@ export declare interface RouterOverridesContextState {
4733
5383
  /**
4734
5384
  * @public
4735
5385
  */
4736
- export declare interface Row {
4737
- id: string;
4738
- rowId: string;
4739
- name: string;
4740
- description?: string;
4741
- assets: AssetsField;
4742
- type: ScreenRowType;
4743
- isLiveRow: boolean;
4744
- tiles: PaginationInterface<ItemInRow>;
4745
- numberOfLines?: number;
4746
- monetizations?: {
4747
- monetizationRef: any;
4748
- }[];
4749
- rowComponent: RowComponent.ROW | RowComponent.BANNER;
4750
- itemComponent: RowItemComponent | BannerItemComponent;
4751
- organizationId?: string;
4752
- bottomComponent?: BottomComponent;
4753
- showDescriptionAsTitle?: boolean;
4754
- }
5386
+ export declare type Row = StaticRow | DynamicRow;
4755
5387
 
4756
5388
  /**
4757
5389
  * @public
@@ -4769,17 +5401,41 @@ export declare enum ROW_ITEM_TYPES {
4769
5401
  /**
4770
5402
  * @public
4771
5403
  */
4772
- export declare interface RowBanner extends Row {
5404
+ export declare interface RowBanner extends DynamicRow {
4773
5405
  rowComponent: RowComponent.BANNER;
4774
5406
  itemComponent: BannerItemComponent;
4775
5407
  }
4776
5408
 
5409
+ export declare interface RowButton {
5410
+ id: string;
5411
+ enabled: boolean;
5412
+ href: string;
5413
+ text: Translation;
5414
+ variant: 'primary' | 'secondary';
5415
+ leftIcon?: 'play';
5416
+ }
5417
+
4777
5418
  /**
4778
5419
  * @public
4779
5420
  */
4780
5421
  export declare enum RowComponent {
4781
5422
  ROW = "ROW",
4782
- BANNER = "BANNER"
5423
+ BANNER = "BANNER",
5424
+ BENEFITS = "BENEFITS",
5425
+ REVIEWS = "REVIEWS",
5426
+ MONETIZATIONS = "MONETIZATIONS",
5427
+ SPLIT_LAYOUT = "SPLIT_LAYOUT",
5428
+ NUMBERS = "NUMBERS",
5429
+ FAQ = "FAQ",
5430
+ CTA_BANNER = "CTA_BANNER",
5431
+ PRESENT_BANNER = "PRESENT_BANNER",
5432
+ MONETIZATION_BANNER = "MONETIZATION_BANNER",
5433
+ VIDEO_BANNER = "VIDEO_BANNER",
5434
+ MEDIA_ACCORDEON = "MEDIA_ACCORDEON",
5435
+ EXPLORE = "EXPLORE",
5436
+ BACKGROUND_BANNER = "BACKGROUND_BANNER",
5437
+ PARTNER_LOGOS = "PARTNER_LOGOS",
5438
+ HOMEPAGE_BANNER = "HOMEPAGE_BANNER"
4783
5439
  }
4784
5440
 
4785
5441
  export declare enum RowFilterCollection {
@@ -4813,72 +5469,10 @@ export declare interface RowFilterWhereField {
4813
5469
  value: any;
4814
5470
  }
4815
5471
 
4816
- export declare type RowInScreen = {
4817
- /**
4818
- * Firebase document path. If not provided, the row is not defined in db and is dynamically generated (e.g. recommendation row).
4819
- */
4820
- path?: string;
4821
- /**
4822
- * Tivio row ID.
4823
- */
4824
- rowId: string;
4825
- /**
4826
- * If all items are from the same organization this will be set.
4827
- */
4828
- organizationId?: string;
4829
- /**
4830
- * Row name.
4831
- */
4832
- name: Translation;
4833
- /**
4834
- * Row filter based on which to pick tiles.
4835
- */
4836
- filter?: RowFilterField;
4837
- /**
4838
- * Row order in the screen.
4839
- */
4840
- order?: number;
4841
- /**
4842
- * Number of lines of the title.
4843
- */
4844
- numberOfLines?: number;
4845
- /**
4846
- * Standard row or a Banner.
4847
- */
4848
- rowComponent: RowComponent;
4849
- /**
4850
- * Component to use to render the tiles in the row.
4851
- */
4852
- itemComponent: RowItemComponent | BannerItemComponent;
4853
- /**
4854
- * Type of the row (continue to watch, custom, filter, ...).
4855
- */
4856
- type: ScreenRowType;
4857
- /**
4858
- * Items to display in the row.
4859
- */
4860
- tiles: GetTilesInRowResponse;
4861
- /**
4862
- * Setting for decided what to show bellow the tiles
4863
- */
4864
- bottomComponent?: BottomComponent;
4865
- /**
4866
- * Setting for decided whether to show description instead of title in the tiles
4867
- */
4868
- showDescriptionAsTitle?: boolean;
4869
- /**
4870
- * Setting for decided whether to hide title in the tiles/banners
4871
- */
4872
- hideTitle?: boolean;
4873
- /**
4874
- * Link to external URL
4875
- */
4876
- externalUrl?: string;
4877
- /**
4878
- * Title of Play button
4879
- */
4880
- playButtonTitle?: Translation;
4881
- };
5472
+ /**
5473
+ * Row in screen - can be either static or dynamic
5474
+ */
5475
+ export declare type RowInScreen = StaticRowInScreen | DynamicRowInScreen;
4882
5476
 
4883
5477
  /**
4884
5478
  * @public
@@ -4891,6 +5485,7 @@ export declare interface RowItem extends RowItemAssets {
4891
5485
  assets: AssetsField | null;
4892
5486
  application: RowItemApplicationData | null;
4893
5487
  feedVisible?: boolean;
5488
+ tileProps?: TileProps;
4894
5489
  }
4895
5490
 
4896
5491
  /**
@@ -4928,7 +5523,11 @@ export declare enum RowItemComponent {
4928
5523
  ROW_ITEM_CREATORS_LANDSCAPE = "ROW_ITEM_CREATORS_LANDSCAPE",
4929
5524
  ROW_ITEM_CIRCLED = "ROW_ITEM_CIRCLED",
4930
5525
  ROW_ITEM_HIGHLIGHTED = "ROW_ITEM_HIGHLIGHTED",
4931
- ROW_ITEM_PLAIN = "ROW_ITEM_PLAIN"
5526
+ ROW_ITEM_PLAIN = "ROW_ITEM_PLAIN",
5527
+ SIDE_BANNER = "SIDE_BANNER",
5528
+ ROW_ITEM_FEATURED = "ROW_ITEM_FEATURED",
5529
+ CATEGORY_GRID = "CATEGORY_GRID",
5530
+ HERO_BANNER = "HERO_BANNER"
4932
5531
  }
4933
5532
 
4934
5533
  /**
@@ -4945,6 +5544,16 @@ export declare type RowItemsSubscription = (rowId: string, cb: (error: Error | n
4945
5544
  hasNextPage: boolean;
4946
5545
  } | null, fetchMore: null | ((count?: number) => void), isLoading: boolean) => void, limit?: number) => Disposer_2;
4947
5546
 
5547
+ /**
5548
+ * @public
5549
+ */
5550
+ export declare interface RowMonetizationData {
5551
+ id: string;
5552
+ path: string;
5553
+ placementType: 'channel' | 'tvChannel' | 'condition' | 'video' | 'section' | 'row';
5554
+ type: MonetizationType;
5555
+ }
5556
+
4948
5557
  /**
4949
5558
  * RowOrderByFieldPath that is used in @tivio/firebase needs to be retyped here.
4950
5559
  * @public
@@ -4957,7 +5566,7 @@ export declare enum RowOrderByFieldPath {
4957
5566
  /**
4958
5567
  * @public
4959
5568
  */
4960
- export declare interface RowStandard extends Row {
5569
+ export declare interface RowStandard extends DynamicRow {
4961
5570
  rowComponent: RowComponent.ROW;
4962
5571
  itemComponent: RowItemComponent;
4963
5572
  }
@@ -5070,6 +5679,11 @@ declare interface Screen_2 {
5070
5679
  hasNextPage: boolean;
5071
5680
  refetchIfNeeded: () => Promise<void>;
5072
5681
  allowOrganizationBanner?: boolean;
5682
+ /**
5683
+ * Path to content (e.g., "videos/ID" or "tvChannels/ID").
5684
+ * Used for PLAYER screen type to specify which content to play.
5685
+ */
5686
+ contentPath?: string;
5073
5687
  }
5074
5688
  export { Screen_2 as Screen }
5075
5689
 
@@ -5101,7 +5715,7 @@ export declare type ScreenConfig = {
5101
5715
  /**
5102
5716
  * @public
5103
5717
  */
5104
- export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched' | 'applications';
5718
+ export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'favourites' | 'topWatched' | 'applications' | 'static';
5105
5719
 
5106
5720
  /**
5107
5721
  * Listen to screen data
@@ -5118,7 +5732,9 @@ export declare enum ScreenType {
5118
5732
  EMBED = "embed",
5119
5733
  RECOMMENDATION = "recommendation",
5120
5734
  FEED = "feed",
5121
- EPG = "epg"
5735
+ EPG = "epg",
5736
+ LANDING = "landing",
5737
+ PLAYER = "player"
5122
5738
  }
5123
5739
 
5124
5740
  /**
@@ -5142,14 +5758,6 @@ export declare type SdkReactConfig = Omit<TivioConfig, 'language'> & {
5142
5758
  language?: LangCode;
5143
5759
  };
5144
5760
 
5145
- /**
5146
- * @public
5147
- */
5148
- export declare interface SDKUserAuthCallbacks {
5149
- onGoToLogin?: () => void;
5150
- onGoToRegistration?: () => void;
5151
- }
5152
-
5153
5761
  /**
5154
5762
  * @public
5155
5763
  * @deprecated sections are no longer used.
@@ -5364,7 +5972,22 @@ export declare const showGdprConsentPreferences: () => Promise<void>;
5364
5972
  /**
5365
5973
  * @public
5366
5974
  */
5367
- export declare type SignInProvider = 'google' | 'patreon' | 'apple';
5975
+ export declare interface SideBannerProps {
5976
+ title: string;
5977
+ description: string;
5978
+ cover: string;
5979
+ backgroundColor?: string;
5980
+ buttonText?: string;
5981
+ onButtonClick?: () => void;
5982
+ buttonHref?: string;
5983
+ imagePosition?: 'left' | 'right';
5984
+ textBackgroundColor?: string;
5985
+ }
5986
+
5987
+ /**
5988
+ * @public
5989
+ */
5990
+ export declare type SignInProvider = 'google' | 'patreon' | 'apple' | 'facebook';
5368
5991
 
5369
5992
  /**
5370
5993
  * Simplified VideoController interface for external rendering
@@ -5453,27 +6076,6 @@ export declare interface SimplifiedVideoController {
5453
6076
  muted: boolean;
5454
6077
  volume: number;
5455
6078
  }) => void): void;
5456
- /**
5457
- * Add an event listener for ad started events
5458
- * @param event - Must be 'ad-started'
5459
- * @param callback - Function called when an ad starts playing
5460
- */
5461
- addEventListener(event: 'ad-started', callback: (adMetadata: AdMetadata & {
5462
- customAdMetadata?: Record<string, unknown> | null;
5463
- ctaElement: HTMLElement | null;
5464
- }) => void): void;
5465
- /**
5466
- * Add an event listener for ad ended events
5467
- * @param event - Must be 'ad-ended'
5468
- * @param callback - Function called when an ad finishes playing
5469
- */
5470
- addEventListener(event: 'ad-ended', callback: () => void): void;
5471
- /**
5472
- * Add an event listener for companion ads events
5473
- * @param event - Must be 'companion-ads'
5474
- * @param callback - Function called when companion ads are available
5475
- */
5476
- addEventListener(event: 'companion-ads', callback: (companionAds: CompanionAd[]) => void): void;
5477
6079
  /**
5478
6080
  * Remove an event listener
5479
6081
  * @param event - The event name to stop listening for
@@ -5485,7 +6087,6 @@ export declare interface SimplifiedVideoController {
5485
6087
  * @param source - The new source to load (can be a video path, channel path, or source parameters)
5486
6088
  */
5487
6089
  setSource(source: WebPlayerProps['source']): void;
5488
- setAdsConfig(adsConfig: StaticAdsBreak[]): void;
5489
6090
  /**
5490
6091
  * Destroy the player and clean up all resources
5491
6092
  */
@@ -5528,100 +6129,314 @@ export declare type SourceBase = {
5528
6129
  };
5529
6130
 
5530
6131
  /**
5531
- * Used to instantiate types of corresponding interfaces (children of {@link PlayerSourceInterface}).
5532
- * @public
6132
+ * Used to instantiate types of corresponding interfaces (children of {@link PlayerSourceInterface}).
6133
+ * @public
6134
+ */
6135
+ export declare type SourceParams = VodTivioSourceParams | VodExternalSourceParams | ChannelSourceParams | VirtualChannelSourceParams;
6136
+
6137
+ /**
6138
+ * Based on this value player will change how the source is played. This, for example, affects whether source:
6139
+ * - will be seekable or not
6140
+ * - duration will be dynamically updated as time goes on
6141
+ * - live button will be shown in ui
6142
+ */
6143
+ export declare enum SourcePlayMode {
6144
+ ON_DEMAND = "ON_DEMAND",
6145
+ LIVE = "LIVE",
6146
+ /**
6147
+ * ON_DEMAND and LIVE at the same time.
6148
+ */
6149
+ HYBRID = "HYBRID"
6150
+ }
6151
+
6152
+ /**
6153
+ * @public
6154
+ */
6155
+ export declare enum SourceType {
6156
+ ADVERTISEMENT = "ad",
6157
+ CHANNEL = "channel",
6158
+ VOD_TIVIO = "vod_tivio",
6159
+ VOD_EXTERNAL = "vod_external"
6160
+ }
6161
+
6162
+ export declare interface SplitLayoutItem {
6163
+ asset: ScalableAsset;
6164
+ name: Translation;
6165
+ description?: Translation;
6166
+ }
6167
+
6168
+ export declare type SplitLayoutSpecificData = SplitLayoutItem;
6169
+
6170
+ /**
6171
+ * External information of video from SportyTv EPG import
6172
+ * @public
6173
+ */
6174
+ export declare interface SportyExternals {
6175
+ showId?: string;
6176
+ showGroup?: string;
6177
+ showTitle?: string;
6178
+ }
6179
+
6180
+ /**
6181
+ * @public
6182
+ */
6183
+ export declare type StartAndContinuePosition = {
6184
+ /**
6185
+ * Relative from stream start, in ms.
6186
+ *
6187
+ * On input to Tivio either `startFromPosition` or `continueFromPosition` must always be provided.
6188
+ *
6189
+ * On output from Tivio it is always defined. Tivio can change this value.
6190
+ * (e.g. in order to fix start position of a TV program)
6191
+ */
6192
+ startFromPosition?: number;
6193
+ /**
6194
+ * Relative from stream start, in ms.
6195
+ *
6196
+ * On input to Tivio either `startFromPosition` or `continueFromPosition` must always be provided.
6197
+ *
6198
+ * If provided, tivio will not correct it and will send this value back in startFromPosition.
6199
+ * If provided, startFromPosition is ignored.
6200
+ */
6201
+ continueFromPosition?: number;
6202
+ };
6203
+
6204
+ export declare type StartLiveStreamPayload = BaseWidgetControlPayload;
6205
+
6206
+ declare interface StartLiveStreamRequest {
6207
+ action: 'startLiveStream';
6208
+ payload: StartLiveStreamPayload;
6209
+ }
6210
+
6211
+ export declare interface StartLiveStreamResponse {
6212
+ liveStreamProcessPath: string;
6213
+ streamingStudioProcessPath: string;
6214
+ error?: string;
6215
+ }
6216
+
6217
+ /**
6218
+ * Row components available for static rows (BENEFITS, FAQ, etc.)
6219
+ * Matches the rowComponent constraint in StaticRow type definition
6220
+ * @public
6221
+ */
6222
+ export declare const STATIC_ROW_COMPONENTS: readonly [RowComponent.BENEFITS, RowComponent.REVIEWS, RowComponent.MONETIZATIONS, RowComponent.SPLIT_LAYOUT, RowComponent.NUMBERS, RowComponent.FAQ, RowComponent.CTA_BANNER, RowComponent.PRESENT_BANNER, RowComponent.MONETIZATION_BANNER, RowComponent.VIDEO_BANNER, RowComponent.MEDIA_ACCORDEON, RowComponent.EXPLORE, RowComponent.BACKGROUND_BANNER, RowComponent.PARTNER_LOGOS, RowComponent.HOMEPAGE_BANNER];
6223
+
6224
+ /**
6225
+ * Static row (e.g. benefits, reviews, FAQ) - doesn't have itemComponent or dynamic fields
6226
+ * Uses special row components like BENEFITS, REVIEWS, FAQ, etc.
6227
+ * @public
6228
+ */
6229
+ export declare type StaticRow = StaticRowBenefits | StaticRowReviews | StaticRowNumbers | StaticRowSplitLayout | StaticRowFaq | StaticRowPresentBanner | StaticRowExplore | StaticRowCtaBanner | StaticRowWithoutCustomItems;
6230
+
6231
+ /**
6232
+ * Benefits row
6233
+ * @public
6234
+ */
6235
+ export declare interface StaticRowBenefits extends BaseRow {
6236
+ type: 'static';
6237
+ rowComponent: RowComponent.BENEFITS;
6238
+ customItems: BenefitTileSpecificData;
6239
+ screenRef?: string;
6240
+ videoRef?: string;
6241
+ buttons?: RowButton[];
6242
+ }
6243
+
6244
+ /**
6245
+ * CTA Banner row
6246
+ * @public
6247
+ */
6248
+ export declare interface StaticRowCtaBanner extends BaseRow {
6249
+ type: 'static';
6250
+ rowComponent: RowComponent.CTA_BANNER;
6251
+ customItems: CtaBannerExtendRowData;
6252
+ screenRef?: string;
6253
+ videoRef?: string;
6254
+ variant?: 'light' | 'dark' | 'default' | 'large';
6255
+ heading?: Translation;
6256
+ subtitle?: {
6257
+ text: Translation;
6258
+ showIcon?: boolean;
6259
+ };
6260
+ button?: {
6261
+ href: string;
6262
+ text: Translation;
6263
+ };
6264
+ }
6265
+
6266
+ /**
6267
+ * Explore row
6268
+ * @public
6269
+ */
6270
+ export declare interface StaticRowExplore extends BaseRow {
6271
+ type: 'static';
6272
+ rowComponent: RowComponent.EXPLORE;
6273
+ customItems: ExploreTileSpecificData;
6274
+ screenRef?: string;
6275
+ videoRef?: string;
6276
+ }
6277
+
6278
+ /**
6279
+ * FAQ row
6280
+ * @public
6281
+ */
6282
+ export declare interface StaticRowFaq extends BaseRow {
6283
+ type: 'static';
6284
+ rowComponent: RowComponent.FAQ;
6285
+ customItems: FaqTileSpecificData;
6286
+ screenRef?: string;
6287
+ videoRef?: string;
6288
+ email?: string;
6289
+ }
6290
+
6291
+ /**
6292
+ * Static row type - discriminated union by rowComponent
6293
+ */
6294
+ export declare type StaticRowInScreen = StaticRowInScreenCtaBanner | StaticRowInScreenPresentBanner | StaticRowInScreenVideoBanner | StaticRowInScreenHomepageBanner | StaticRowInScreenFaq | StaticRowInScreenBenefits | StaticRowInScreenWithTiles;
6295
+
6296
+ /**
6297
+ * Benefits static row - has tiles + buttons
6298
+ */
6299
+ declare type StaticRowInScreenBenefits = BaseStaticRowInScreen & {
6300
+ rowComponent: RowComponent.BENEFITS;
6301
+ buttons?: RowButton[];
6302
+ tiles: PaginatedResponse<TileData<'static'>, 'rowId'>;
6303
+ };
6304
+
6305
+ /**
6306
+ * CTA Banner static row - data flatten to row level (no tiles)
6307
+ */
6308
+ declare type StaticRowInScreenCtaBanner = BaseStaticRowInScreen & {
6309
+ rowComponent: RowComponent.CTA_BANNER;
6310
+ } & CtaBannerExtendRowData;
6311
+
6312
+ /**
6313
+ * FAQ static row - has description and email fields specific to FAQ
6314
+ */
6315
+ declare type StaticRowInScreenFaq = BaseStaticRowInScreen & {
6316
+ rowComponent: RowComponent.FAQ;
6317
+ description?: Translation;
6318
+ email?: string;
6319
+ tiles: PaginatedResponse<TileData<'static'>, 'rowId'>;
6320
+ };
6321
+
6322
+ /**
6323
+ * Homepage Banner static row - multiline banner for homepage (no tiles)
6324
+ */
6325
+ declare type StaticRowInScreenHomepageBanner = BaseStaticRowInScreen & {
6326
+ rowComponent: RowComponent.HOMEPAGE_BANNER;
6327
+ } & HomepageBannerExtendRowData;
6328
+
6329
+ /**
6330
+ * Present Banner static row - organization fields + videoPath flatten to row level (no tiles)
5533
6331
  */
5534
- export declare type SourceParams = VodTivioSourceParams | VodExternalSourceParams | ChannelSourceParams | VirtualChannelSourceParams;
6332
+ declare type StaticRowInScreenPresentBanner = BaseStaticRowInScreen & {
6333
+ rowComponent: RowComponent.PRESENT_BANNER;
6334
+ videoPath?: string;
6335
+ } & Omit<PresentBannerExtendRowData, 'name' | 'description'>;
5535
6336
 
5536
6337
  /**
5537
- * Based on this value player will change how the source is played. This, for example, affects whether source:
5538
- * - will be seekable or not
5539
- * - duration will be dynamically updated as time goes on
5540
- * - live button will be shown in ui
6338
+ * Video Banner static row - videoPath flatten to row level (no tiles)
5541
6339
  */
5542
- export declare enum SourcePlayMode {
5543
- ON_DEMAND = "ON_DEMAND",
5544
- LIVE = "LIVE",
5545
- /**
5546
- * ON_DEMAND and LIVE at the same time.
5547
- */
5548
- HYBRID = "HYBRID"
5549
- }
6340
+ declare type StaticRowInScreenVideoBanner = BaseStaticRowInScreen & {
6341
+ rowComponent: RowComponent.VIDEO_BANNER;
6342
+ videoPath?: string;
6343
+ };
6344
+
6345
+ /**
6346
+ * Static rows with tiles (NUMBERS, EXPLORE, etc.)
6347
+ */
6348
+ declare type StaticRowInScreenWithTiles = BaseStaticRowInScreen & {
6349
+ rowComponent: Exclude<RowComponent, RowComponent.CTA_BANNER | RowComponent.PRESENT_BANNER | RowComponent.VIDEO_BANNER | RowComponent.HOMEPAGE_BANNER | RowComponent.FAQ | RowComponent.BENEFITS>;
6350
+ tiles: PaginatedResponse<TileData<'static'>, 'rowId'>;
6351
+ };
5550
6352
 
5551
6353
  /**
6354
+ * Numbers row
5552
6355
  * @public
5553
6356
  */
5554
- export declare enum SourceType {
5555
- ADVERTISEMENT = "ad",
5556
- CHANNEL = "channel",
5557
- VOD_TIVIO = "vod_tivio",
5558
- VOD_EXTERNAL = "vod_external"
6357
+ export declare interface StaticRowNumbers extends BaseRow {
6358
+ type: 'static';
6359
+ rowComponent: RowComponent.NUMBERS;
6360
+ customItems: NumbersTileSpecificData;
6361
+ screenRef?: string;
6362
+ videoRef?: string;
6363
+ variant?: 'default' | 'large';
5559
6364
  }
5560
6365
 
5561
6366
  /**
5562
- * External information of video from SportyTv EPG import
6367
+ * Present banner row
5563
6368
  * @public
5564
6369
  */
5565
- export declare interface SportyExternals {
5566
- showId?: string;
5567
- showGroup?: string;
5568
- showTitle?: string;
6370
+ export declare interface StaticRowPresentBanner extends BaseRow {
6371
+ type: 'static';
6372
+ rowComponent: RowComponent.PRESENT_BANNER;
6373
+ customItems: PresentBannerExtendRowData;
6374
+ screenRef?: string;
6375
+ videoRef?: string;
6376
+ subname?: Translation;
6377
+ avatars?: ScalableAsset[];
6378
+ avatarsText?: Translation;
6379
+ asset?: ScalableAsset;
6380
+ videoPath?: string;
6381
+ buttons?: RowButton[];
5569
6382
  }
5570
6383
 
5571
6384
  /**
6385
+ * Reviews row
5572
6386
  * @public
5573
6387
  */
5574
- export declare type StartAndContinuePosition = {
5575
- /**
5576
- * Relative from stream start, in ms.
5577
- *
5578
- * On input to Tivio either `startFromPosition` or `continueFromPosition` must always be provided.
5579
- *
5580
- * On output from Tivio it is always defined. Tivio can change this value.
5581
- * (e.g. in order to fix start position of a TV program)
5582
- */
5583
- startFromPosition?: number;
5584
- /**
5585
- * Relative from stream start, in ms.
5586
- *
5587
- * On input to Tivio either `startFromPosition` or `continueFromPosition` must always be provided.
5588
- *
5589
- * If provided, tivio will not correct it and will send this value back in startFromPosition.
5590
- * If provided, startFromPosition is ignored.
5591
- */
5592
- continueFromPosition?: number;
5593
- };
5594
-
5595
- export declare type StartLiveStreamPayload = BaseWidgetControlPayload;
5596
-
5597
- declare interface StartLiveStreamRequest {
5598
- action: 'startLiveStream';
5599
- payload: StartLiveStreamPayload;
6388
+ export declare interface StaticRowReviews extends BaseRow {
6389
+ type: 'static';
6390
+ rowComponent: RowComponent.REVIEWS;
6391
+ customItems: ReviewTileSpecificData;
6392
+ screenRef?: string;
6393
+ videoRef?: string;
5600
6394
  }
5601
6395
 
5602
- export declare interface StartLiveStreamResponse {
5603
- liveStreamProcessPath: string;
5604
- streamingStudioProcessPath: string;
5605
- error?: string;
6396
+ /**
6397
+ * Split layout row
6398
+ * @public
6399
+ */
6400
+ export declare interface StaticRowSplitLayout extends BaseRow {
6401
+ type: 'static';
6402
+ rowComponent: RowComponent.SPLIT_LAYOUT;
6403
+ customItems: SplitLayoutSpecificData;
6404
+ screenRef?: string;
6405
+ videoRef?: string;
5606
6406
  }
5607
6407
 
5608
- export declare type StaticAdsBreak = StaticAdsBreakPostrollPreroll | StaticAdsBreakMidroll | StaticAdsBreakReplacement;
5609
-
5610
- export declare interface StaticAdsBreakMidroll {
5611
- type: 'midroll';
5612
- from: number;
5613
- url: string;
6408
+ /**
6409
+ * Static row without customItems (video banner, media accordion, monetization banner, background banner)
6410
+ * @public
6411
+ */
6412
+ export declare interface StaticRowWithoutCustomItems extends BaseRow {
6413
+ type: 'static';
6414
+ rowComponent: RowComponent.VIDEO_BANNER | RowComponent.MEDIA_ACCORDEON | RowComponent.MONETIZATION_BANNER | RowComponent.BACKGROUND_BANNER | RowComponent.PARTNER_LOGOS;
6415
+ screenRef?: string;
6416
+ videoRef?: string;
6417
+ videoPath?: string;
5614
6418
  }
5615
6419
 
5616
- declare interface StaticAdsBreakPostrollPreroll {
5617
- type: 'preroll' | 'postroll';
5618
- url: string;
6420
+ /**
6421
+ * Tile data for static rows with itemSpecificData (BENEFITS, FAQ, NUMBERS, SPLIT_LAYOUT, REVIEWS, EXPLORE).
6422
+ * @public
6423
+ */
6424
+ export declare interface StaticTileData<ItemSpecificData extends StaticTileItemSpecificData = StaticTileItemSpecificData> {
6425
+ /**
6426
+ * Specific data for an item type (e.g. benefit, faq, numbers, split layout, etc.).
6427
+ */
6428
+ itemSpecificData: ItemSpecificData;
5619
6429
  }
5620
6430
 
5621
- export declare interface StaticAdsBreakReplacement {
5622
- type: 'replacement';
5623
- url: string;
5624
- }
6431
+ /**
6432
+ * Type for itemSpecificData in API tile responses.
6433
+ * Excludes types that don't use itemSpecificData in tiles:
6434
+ * - MediaAccordeonTileSpecificData: MEDIA_ACCORDEON only uses path/id/name fields
6435
+ * - PresentBannerExtendRowData: PRESENT_BANNER data is flatten to row level (no tiles)
6436
+ * - CtaBannerExtendRowData: CTA_BANNER data is flatten to row level (no tiles)
6437
+ * @public
6438
+ */
6439
+ export declare type StaticTileItemSpecificData = BenefitTileSpecificData | ReviewTileSpecificData | NumbersTileSpecificData | SplitLayoutSpecificData | FaqTileSpecificData | ExploreTileSpecificData | MediaAccordeonTileSpecificData;
5625
6440
 
5626
6441
  /**
5627
6442
  * @public
@@ -5637,6 +6452,15 @@ export declare interface StoreBadgeConfig {
5637
6452
  appId: string;
5638
6453
  }
5639
6454
 
6455
+ /**
6456
+ * @public
6457
+ * Streaming profile for buffer configuration.
6458
+ * - 'low': Minimal buffering for fastest camera switches (bufferingGoal: 3s)
6459
+ * - 'medium': Balanced buffering (bufferingGoal: 5s) - default
6460
+ * - 'high': Maximum buffering for stable playback (bufferingGoal: 15s)
6461
+ */
6462
+ export declare type StreamingProfile = 'low' | 'medium' | 'high';
6463
+
5640
6464
  export declare interface SubmitAnswerRequest {
5641
6465
  answerOptionId?: string;
5642
6466
  answerText?: string;
@@ -5705,6 +6529,25 @@ declare interface SubscriptionInfo {
5705
6529
  frequency: string;
5706
6530
  }
5707
6531
 
6532
+ /**
6533
+ * Extended language codes for subtitle tracks.
6534
+ * Includes all LangCode values plus additional languages only needed for subtitles.
6535
+ * @public
6536
+ */
6537
+ export declare type SubtitleLangCode = LangCode | 'uk' | 'zh';
6538
+
6539
+ /**
6540
+ * Mapping of subtitle language codes to their English names.
6541
+ * @public
6542
+ */
6543
+ export declare const SubtitleLangCodeToTitle: Record<SubtitleLangCode, string>;
6544
+
6545
+ /**
6546
+ * All subtitle language codes including extra languages not in LangCode.
6547
+ * @public
6548
+ */
6549
+ export declare const subtitleLanguages: SubtitleLangCode[];
6550
+
5708
6551
  /**
5709
6552
  * @public
5710
6553
  */
@@ -5745,8 +6588,8 @@ export declare interface Tag extends RowItem {
5745
6588
  detailBanner?: string;
5746
6589
  availableSeasons?: AvailableSeason[];
5747
6590
  isFavorite: boolean;
5748
- addToFavorites: () => Promise<void>;
5749
- removeFromFavorites: () => Promise<void>;
6591
+ addToFavorites: () => void;
6592
+ removeFromFavorites: () => void;
5750
6593
  cover: string;
5751
6594
  getApplicationName: () => string | undefined;
5752
6595
  seriesRef?: DocumentReference<any>;
@@ -5859,48 +6702,10 @@ export declare interface TileApplicationData {
5859
6702
  isMainApplication?: boolean;
5860
6703
  }
5861
6704
 
5862
- export declare interface TileData<ItemSpecificData = VideoTileSpecificData | TvChannelTileSpecificData | TagTileSpecificData | ArticleTileSpecificData | SeriesTileSpecificData> {
5863
- /**
5864
- * Tile item ID.
5865
- */
5866
- id: string;
5867
- /**
5868
- * Timestamp of the item creation.
5869
- */
5870
- created: number;
5871
- /**
5872
- * Type of the tile. VIDEO, TV_CHANNEL, TAG, ...
5873
- */
5874
- itemType: ROW_ITEM_TYPES;
5875
- /**
5876
- * Tile item name translation.
5877
- */
5878
- name: Translation;
5879
- /**
5880
- * Firestore path to the item.
5881
- */
5882
- path: string;
5883
- /**
5884
- * Application info including logo, name and number of videos.
5885
- */
5886
- application?: TileApplicationData;
5887
- /**
5888
- * Specific data for an item type (e.g. video, tv channel, tag, ...).
5889
- */
5890
- itemSpecificData: ItemSpecificData;
5891
- }
5892
-
5893
- export declare interface TileMonetizationData {
5894
- id: string;
5895
- path: string;
5896
- placementType: 'channel' | 'tvChannel' | 'condition' | 'video' | 'section' | 'row';
5897
- type: MonetizationType;
5898
- }
5899
-
5900
6705
  /**
5901
6706
  * @public
5902
6707
  */
5903
- export declare interface TileProps {
6708
+ export declare interface TileComponentProps {
5904
6709
  children?: React_2.ReactNode;
5905
6710
  cover?: string;
5906
6711
  bottomLabel: string;
@@ -5942,12 +6747,49 @@ export declare interface TileProps {
5942
6747
  itemType?: ROW_ITEM_TYPES;
5943
6748
  description?: string;
5944
6749
  showDescriptionAsTitle?: boolean;
6750
+ isSeries?: boolean;
6751
+ episodeCount?: number;
6752
+ /**
6753
+ * Optional label to display in the top-right corner of the tile (e.g., "Exclusive").
6754
+ * Label text (already resolved for the current language).
6755
+ */
6756
+ topLabel?: string;
6757
+ /**
6758
+ * CSS color for the topLabel background. Defaults to white.
6759
+ */
6760
+ topLabelColor?: string;
6761
+ }
6762
+
6763
+ export declare type TileData<T extends ScreenRowType = ScreenRowType> = T extends 'static' ? StaticTileData : DocumentTileData;
6764
+
6765
+ export declare interface TileMonetizationData {
6766
+ id: string;
6767
+ path: string;
6768
+ placementType: 'channel' | 'tvChannel' | 'condition' | 'video' | 'section' | 'row';
6769
+ type: MonetizationType;
6770
+ }
6771
+
6772
+ /**
6773
+ * Additional properties that can be applied to tiles for visual customization
6774
+ * @public
6775
+ */
6776
+ export declare interface TileProps {
6777
+ topRightLabel?: TileTopRightLabel;
5945
6778
  }
5946
6779
 
5947
6780
  /**
5948
6781
  * @public
5949
6782
  */
5950
- export declare type TilePropsPartial = Partial<TileProps>;
6783
+ export declare type TilePropsPartial = Partial<TileComponentProps>;
6784
+
6785
+ /**
6786
+ * Custom label to be displayed on a tile (e.g., "Exclusive" badge)
6787
+ * @public
6788
+ */
6789
+ export declare interface TileTopRightLabel {
6790
+ text: string;
6791
+ color?: string;
6792
+ }
5951
6793
 
5952
6794
  /**
5953
6795
  * @public
@@ -6039,10 +6881,6 @@ export declare interface TivioComponents {
6039
6881
  ContentSortPicker: React_2.ComponentType<ContentSortPickerProps>;
6040
6882
  WebTivioProVideoScreen: React_2.ComponentType<WebTivioProVideoScreenProps>;
6041
6883
  RemoteController: React_2.ComponentType<RemoteControllerProps>;
6042
- MonetizationsSelectOverlay: React_2.ComponentType;
6043
- MonetizationsSelectOverlayContextProvider: React_2.ComponentType<{
6044
- children: React_2.ReactNode;
6045
- }>;
6046
6884
  }
6047
6885
 
6048
6886
  /**
@@ -6079,7 +6917,10 @@ export declare interface TivioConfig {
6079
6917
  * @deprecated this field is no longer in use and has no impact when set.
6080
6918
  */
6081
6919
  firestore?: any | null;
6082
- currency: Currency;
6920
+ /**
6921
+ * @deprecated currency should be determined by `currencies` field in organization document in database, do not rely on this field.
6922
+ */
6923
+ currency?: Currency;
6083
6924
  /**
6084
6925
  * Represents an optional array of LanguageSelector objects.
6085
6926
  * Used to define and manage a list of supported languages for different language-usages (user, content,...).
@@ -6238,6 +7079,10 @@ export declare type TivioInternalComponents = {
6238
7079
  }>;
6239
7080
  Banner: React_2.ComponentType<BannerPropsPartial>;
6240
7081
  CustomAppHistoryContext: React_2.Context<HistoryContextData | undefined>;
7082
+ ScrollableSubscriptionList: React_2.ComponentType<{
7083
+ subscriptions: PurchasableMonetization[];
7084
+ renderSubscription: (subscription: PurchasableMonetization) => React_2.ReactNode;
7085
+ }>;
6241
7086
  };
6242
7087
 
6243
7088
  /**
@@ -6288,6 +7133,13 @@ export declare type TivioInternalHooks = {
6288
7133
  error: Error | null;
6289
7134
  loading: boolean;
6290
7135
  });
7136
+ useScrollShadows: () => {
7137
+ scrollRef: React_2.RefObject<HTMLDivElement>;
7138
+ showLeftShadow: boolean;
7139
+ showRightShadow: boolean;
7140
+ shouldCenter: boolean;
7141
+ checkScrollShadows: () => void;
7142
+ };
6291
7143
  useTvChannel: UseTvChannel;
6292
7144
  useUser: () => {
6293
7145
  user: User | null;
@@ -6315,9 +7167,7 @@ export declare type TivioInternalProviders = {
6315
7167
  UserContextProvider: React_2.ComponentType<{
6316
7168
  children?: React_2.ReactNode;
6317
7169
  }>;
6318
- MonetizationsSelectOverlayContextProvider: React_2.ComponentType<{
6319
- children: React_2.ReactNode;
6320
- }>;
7170
+ MonetizationsSelectOverlayContextProvider: React_2.ComponentType;
6321
7171
  QerkoOverlayContextProvider: React_2.ComponentType;
6322
7172
  /**
6323
7173
  * @deprecated do not use, this provider will be removed in the future
@@ -6414,7 +7264,7 @@ export declare type TivioReactBundle = {
6414
7264
  subscriptions: TivioSubscriptions;
6415
7265
  purchaseVideoWithQerko: (videoId: string, monetizationId: string, voucher?: {
6416
7266
  expirationDate: Date;
6417
- }) => Promise<QerkoPaymentInfo>;
7267
+ }, email?: string) => Promise<QerkoPaymentInfo>;
6418
7268
  purchaseSubscriptionWithQerko: (monetizationId: string, voucher?: {
6419
7269
  expirationDate: Date;
6420
7270
  }) => Promise<QerkoPaymentInfo>;
@@ -6555,7 +7405,7 @@ export declare interface TvAppProps {
6555
7405
  /**
6556
7406
  * @public
6557
7407
  */
6558
- export declare interface TvChannel extends RowItem, MonetizableItem {
7408
+ export declare interface TvChannel extends RowItem {
6559
7409
  id: string;
6560
7410
  itemType: ROW_ITEM_TYPES.TV_CHANNEL;
6561
7411
  name: string;
@@ -6566,11 +7416,17 @@ export declare interface TvChannel extends RowItem, MonetizableItem {
6566
7416
  logoPendingOverlayWidth?: string;
6567
7417
  hls: string;
6568
7418
  dash: string;
7419
+ /**
7420
+ * Returns all transactions and subscriptions applied to this tv channel.
7421
+ * Transactions before subscriptions, sorted by price ascending.
7422
+ */
7423
+ getPurchasableMonetizations(options?: GetPurchasableMonetizationsOptions): PurchasableMonetization[];
6569
7424
  getSourceUrl(options?: {
6570
7425
  language?: LangCode;
6571
7426
  }): Promise<GetSourceUrlResponse & {
6572
7427
  language?: LangCode;
6573
7428
  }>;
7429
+ purchasableMonetization: any | null;
6574
7430
  price: number;
6575
7431
  cover: string;
6576
7432
  isPlayable: boolean;
@@ -6600,7 +7456,12 @@ export declare enum TvChannelType {
6600
7456
  /**
6601
7457
  * "Virtual" tv channel constructed from separate videos
6602
7458
  */
6603
- VIRTUAL = "VIRTUAL"
7459
+ VIRTUAL = "VIRTUAL",
7460
+ /**
7461
+ * Scheduled channel - has EPG like VIRTUAL (admin can edit schedule)
7462
+ * but streams like CLASSIC (calls getSourceUrl on the channel, not per-video).
7463
+ */
7464
+ SCHEDULED = "SCHEDULED"
6604
7465
  }
6605
7466
 
6606
7467
  /**
@@ -6682,6 +7543,13 @@ export declare type UpdateNotificationSettingsRequest = {
6682
7543
 
6683
7544
  export declare type UpdateNotificationSettingsResponse = Promise<boolean>;
6684
7545
 
7546
+ export declare type UpdateUserEmailPayload = {
7547
+ newEmail: string;
7548
+ password: string;
7549
+ name: string;
7550
+ token?: string;
7551
+ };
7552
+
6685
7553
  export declare type UpsertCommentResponse = AddEditCommentResponse | DeleteCommentResponse;
6686
7554
 
6687
7555
  export declare type UrlNamesType = {
@@ -6744,7 +7612,7 @@ export declare const useCancelSubscription: UseCancelSubscription;
6744
7612
  * @public
6745
7613
  */
6746
7614
  export declare interface UseCancelSubscriptionsResult {
6747
- cancelSubscriptions: (subscriptionIds: string[]) => Promise<void>;
7615
+ cancelSubscriptions: (subscriptionIds: string[]) => Promise<boolean>;
6748
7616
  cancellationInfos: QerkoCancellationInfo[];
6749
7617
  errors: string[];
6750
7618
  }
@@ -6953,9 +7821,17 @@ export declare type User = {
6953
7821
  * Returns all PAID or CANCELLED user purchases (expired and non-expired)
6954
7822
  */
6955
7823
  allPurchases: Purchase[];
7824
+ /**
7825
+ * Returns all PAID or CANCELLED user purchases (expired and non-expired)
7826
+ */
7827
+ pastPurchases: Purchase[];
7828
+ /**
7829
+ * IDs of available promotions (promotion document IDs).
7830
+ * Example: ['kaGHeCMcOCEF2OcaJCcr']
7831
+ */
6956
7832
  availablePromotionsIds: string[];
6957
7833
  /**
6958
- * Returns "active" (not CANCELLED) VoD purchases ("transaction" type)
7834
+ * Returns "active" (not CANCELLED) VoD purchases ("transaction" type")
6959
7835
  */
6960
7836
  purchasedVods: Purchase[];
6961
7837
  /**
@@ -7043,9 +7919,6 @@ export declare type User = {
7043
7919
  getAllExtendableSubscriptions: () => Promise<Purchase[]>;
7044
7920
  getRssValidToken: () => Promise<TokenInterface | undefined>;
7045
7921
  getRssUrl: () => Promise<GetUserRssUrlResponse>;
7046
- getFavorites: (options?: GetUserProfileDataOptions) => Promise<FavoriteWithData[]>;
7047
- getWatchPositions: (options?: GetUserProfileDataOptions) => Promise<WatchPositionWithData[]>;
7048
- getWatchHistory: (options?: GetUserProfileDataOptions) => Promise<WatchPositionWithData[]>;
7049
7922
  invalidateAllTokens: (type: TokenType) => Promise<void>;
7050
7923
  isPartiallyRegistered: boolean;
7051
7924
  conversationStore: ConversationStore;
@@ -7091,7 +7964,7 @@ export declare interface UserNotificationSettings {
7091
7964
  * @public
7092
7965
  */
7093
7966
  export declare type UseRow = (rowId: string | null, organizationId?: string) => {
7094
- row: Row | null;
7967
+ row: BaseRow | null;
7095
7968
  error: Error | null;
7096
7969
  };
7097
7970
 
@@ -7333,7 +8206,6 @@ export declare enum VastProvider {
7333
8206
  TEST = "test",
7334
8207
  TEST_VPAID = "test-vpaid",
7335
8208
  TIVIO_ADS = "tivio-ads",
7336
- STATIC_ADS_PROVIDER = "static-ads-provider",
7337
8209
  JOJ_TEST_AD_FORM_PROGRAMMATIC = "joj-test-ad-form-programmatic",
7338
8210
  JOJ_TEST_TESTER_VASTERIX = "joj-test-tester-vasterix",
7339
8211
  JOJ_TEST_TESTER_ADFORM_30 = "joj-test-tester-adform-30"
@@ -7417,8 +8289,8 @@ export declare interface Video extends RowItem, MonetizableItem, ReactableConten
7417
8289
  tasting: Video | null;
7418
8290
  watchPosition: number | null;
7419
8291
  isFavorite: boolean;
7420
- addToFavorites: () => Promise<void>;
7421
- removeFromFavorites: () => Promise<void>;
8292
+ addToFavorites: () => void;
8293
+ removeFromFavorites: () => void;
7422
8294
  availability: ContentAvailability | null;
7423
8295
  sourceLanguages: LangCode[];
7424
8296
  urlByLanguage: (lang: LangCode) => string | undefined;
@@ -7476,10 +8348,6 @@ export declare interface VideoController {
7476
8348
  muted: boolean;
7477
8349
  volume: number;
7478
8350
  }) => void): void;
7479
- addEventListener(event: 'ad-started', callback: (value: AdMetadata & {
7480
- adCtaElement: HTMLElement | null;
7481
- }) => void): void;
7482
- addEventListener(event: 'companion-ads', callback: (value: CompanionAd[]) => void): void;
7483
8351
  /**
7484
8352
  * Remove an event listener
7485
8353
  * @param event - The event name to stop listening for
@@ -7515,6 +8383,10 @@ export declare interface VideoController {
7515
8383
  * Replay the current video from the beginning
7516
8384
  */
7517
8385
  replay(): Promise<void>;
8386
+ /**
8387
+ * Refresh the current source by calling getSourceUrl without sourceHistory.
8388
+ */
8389
+ refreshSource(): Promise<void>;
7518
8390
  /**
7519
8391
  * Retry playback if it failed to start
7520
8392
  */
@@ -7605,7 +8477,30 @@ export declare interface VideoController {
7605
8477
  * @param mutations - Array of DOM mutation records
7606
8478
  */
7607
8479
  onWatermarkElementChange(mutations: MutationRecord[]): void;
7608
- setAdCtaElement: (element: HTMLElement | null) => void;
8480
+ /**
8481
+ * Switch to HLS source for AirPlay (Safari/iOS only).
8482
+ * Preserves current playback position.
8483
+ */
8484
+ switchToHlsForAirplay(): Promise<void>;
8485
+ /**
8486
+ * Switch back to DASH from HLS after AirPlay disconnects.
8487
+ * Preserves current playback position.
8488
+ */
8489
+ switchToDashFromAirplay(): Promise<void>;
8490
+ /**
8491
+ * Reload the current source while preserving playback position.
8492
+ * Used when switching between native HLS and MSE playback modes.
8493
+ */
8494
+ reloadCurrentSource(): Promise<void>;
8495
+ /**
8496
+ * Set whether to prefer HLS sources over DASH.
8497
+ * Used in Safari/iOS when AirPlay is available, as AirPlay only supports HLS streaming.
8498
+ */
8499
+ setPreferHls(preferHls: boolean): void;
8500
+ /**
8501
+ * Suppress watermark tamper detection during AirPlay source switching.
8502
+ */
8503
+ setAirplaySwitching(isSwitching: boolean): void;
7609
8504
  }
7610
8505
 
7611
8506
  declare type VideoDetailResponsiveField = OrganizationResponsiveSetting<{
@@ -7626,7 +8521,7 @@ declare type VideoDetailResponsiveField = OrganizationResponsiveSetting<{
7626
8521
  /**
7627
8522
  * @public
7628
8523
  */
7629
- export declare type VideoExternals = (JojExternals | MallTvExternals | OktagonExternals | MigratedVideoExternals | SportyExternals) & {
8524
+ export declare type VideoExternals = (JojExternals | OktagonExternals | MigratedVideoExternals | SportyExternals | AdExternals) & {
7630
8525
  channelKey?: string;
7631
8526
  };
7632
8527
 
@@ -7689,6 +8584,11 @@ export declare type VideoSourceField = {
7689
8584
  * because content id in source url and authentication will not match.
7690
8585
  */
7691
8586
  contentId?: string;
8587
+ /**
8588
+ * List of platforms that this source is restricted to.
8589
+ * If empty or not defined, there are no restrictions, and source is available for all platforms.
8590
+ */
8591
+ platforms?: PLATFORM[];
7692
8592
  } & ({
7693
8593
  url: string;
7694
8594
  provider?: Exclude<VideoSourceProvider, VideoSourceProvider.CLOUDFLARE>;
@@ -7738,6 +8638,7 @@ export declare interface VideoTileSpecificData {
7738
8638
  urlName?: UrlNamesType;
7739
8639
  monetizations?: VideoTileMonetizationData[];
7740
8640
  description?: Translation;
8641
+ duration?: number;
7741
8642
  }
7742
8643
 
7743
8644
  /**
@@ -7839,18 +8740,9 @@ export declare interface VirtualChannelSourceInterface extends ChannelSourceInte
7839
8740
  */
7840
8741
  export declare interface VirtualChannelSourceParams extends ChannelSourceParams {
7841
8742
  tvChannelType: TvChannelType.VIRTUAL;
7842
- currentProgram?: TvProgram | null;
7843
8743
  drm?: Drm;
7844
8744
  }
7845
8745
 
7846
- /**
7847
- * Interface representing the parameters for a VOD (Video On Demand) external multi-source configuration.
7848
- * Multi-source means an array of string URLs representing the external sources for the video content.
7849
- */
7850
- export declare interface VodExternalMultiSourceParams extends Omit<VodExternalSourceParams, 'url'> {
7851
- urls: string[];
7852
- }
7853
-
7854
8746
  /**
7855
8747
  * @public
7856
8748
  */
@@ -7949,21 +8841,6 @@ export declare interface WarningConfirmationOverlayPayload extends ConfirmationO
7949
8841
  subscriptionExpirationText?: string;
7950
8842
  }
7951
8843
 
7952
- /**
7953
- * @public
7954
- */
7955
- export declare interface WatchPositionWithData extends Omit<UserWatchPositionField, 'videoRef' | 'tagRef'> {
7956
- /**
7957
- * Video that given watch position is related to.
7958
- */
7959
- video: Video;
7960
- /**
7961
- * If user watches episode of series, we have to save series ref as well.
7962
- * Same for {@link episodeNumber} and {@link seasonNumber}.
7963
- */
7964
- tag?: Tag;
7965
- }
7966
-
7967
8844
  /**
7968
8845
  * @public
7969
8846
  */
@@ -7974,7 +8851,6 @@ export declare interface Watermark {
7974
8851
 
7975
8852
  export declare interface WebConfig {
7976
8853
  customer: CustomerId;
7977
- customerName?: string;
7978
8854
  title?: string;
7979
8855
  description?: string;
7980
8856
  logo: string;
@@ -7988,37 +8864,31 @@ export declare interface WebConfig {
7988
8864
  header?: {
7989
8865
  /**
7990
8866
  * Text on buy voucher button, if not provided the default text will be used.
8867
+ * Can be a string or an array of language-specific texts.
8868
+ * @deprecated Use headerButton instead
7991
8869
  */
7992
8870
  buyVoucherButtonText?: string;
7993
8871
  /**
7994
- * If true, the voucher button will be shown in the header.
8872
+ * Configurable button shown in the header (e.g., for vouchers, creator signup, etc.)
8873
+ * Array of language-specific button configurations.
7995
8874
  */
7996
- showVoucherButton?: boolean;
8875
+ headerButton?: (LanguageRestricted & {
8876
+ label: string;
8877
+ href: string;
8878
+ /** Icon to show on the button (mobile only) */
8879
+ icon?: 'gift' | 'star' | 'videoRecorder';
8880
+ variant?: 'primary' | 'secondary' | 'transparent';
8881
+ })[];
7997
8882
  allowSearch?: boolean;
7998
8883
  logoHeight?: string;
7999
8884
  mobileLogoHeight?: string;
8000
8885
  buySubscriptionButtonText?: string;
8001
- isHidden?: boolean;
8002
- /**
8003
- * Additional menu items to be shown in the rounded menu in the header (external or internal)
8004
- */
8005
- additionalMenuItems?: {
8006
- name: string;
8007
- href: string;
8008
- newTab?: boolean;
8009
- }[];
8010
8886
  };
8011
8887
  footer?: {
8012
- isHidden?: boolean;
8013
8888
  /**
8014
8889
  * If logo is different from logo in header
8015
8890
  */
8016
8891
  logo?: string;
8017
- /**
8018
- * @fixme https://app.clickup.com/t/90151157205/TIV-1515
8019
- * If multiple logos are provided, the multiple logos are prioritized over the single logo.
8020
- */
8021
- multipleLogos?: string[];
8022
8892
  showLogo?: boolean;
8023
8893
  /**
8024
8894
  * right panel - various type of contacts to owners of website
@@ -8061,19 +8931,6 @@ export declare interface WebConfig {
8061
8931
  email?: string;
8062
8932
  };
8063
8933
  cookieSettingsLabel?: string;
8064
- disclaimer?: string;
8065
- showDivider?: boolean;
8066
- /**
8067
- * Additional links to be shown in the footer
8068
- */
8069
- additionalLinks?: {
8070
- name: string;
8071
- href: string;
8072
- }[];
8073
- /**
8074
- * Hide footer on these paths
8075
- */
8076
- hideFooter?: string[];
8077
8934
  partners?: {
8078
8935
  name: string;
8079
8936
  logo: string;
@@ -8089,14 +8946,6 @@ export declare interface WebConfig {
8089
8946
  * so app requires authorization to see them.
8090
8947
  */
8091
8948
  securedContent?: boolean;
8092
- /**
8093
- * If true, then auth is required for all pages.
8094
- */
8095
- isAuthRequired?: boolean;
8096
- /**
8097
- * If true, then buy subscription button is hidden.
8098
- */
8099
- hideBuySubscriptionButton?: boolean;
8100
8949
  /**
8101
8950
  * CSS styles for application background.
8102
8951
  */
@@ -8115,10 +8964,6 @@ export declare interface WebConfig {
8115
8964
  * Default is TRUE (see {@link AppLoadingOverlay}
8116
8965
  */
8117
8966
  showProgressBar?: boolean;
8118
- /**
8119
- * URL to background image shown on loading screen.
8120
- */
8121
- backgroundUrl?: string;
8122
8967
  };
8123
8968
  /**
8124
8969
  * Slug of all pages where user will be forced to fill login form if he's not logged in.
@@ -8146,7 +8991,6 @@ export declare interface WebConfig {
8146
8991
  */
8147
8992
  showChooseSubscription?: boolean;
8148
8993
  registration?: {
8149
- logoMarginTop?: string;
8150
8994
  /**
8151
8995
  * Customization of auth form
8152
8996
  */
@@ -8166,18 +9010,18 @@ export declare interface WebConfig {
8166
9010
  showAcceptanceOfTermsAndConditions?: boolean;
8167
9011
  };
8168
9012
  registrationConsent?: string;
8169
- socialRegistrationConsent?: string;
8170
9013
  };
8171
9014
  payment?: {
8172
9015
  paymentConsent?: string;
8173
9016
  paymentRenewalConsent?: boolean;
9017
+ allowFrequencySwitcher?: boolean;
8174
9018
  };
8175
9019
  /**
8176
9020
  * If web supports entering vouchers
8177
9021
  */
8178
9022
  supportVouchers?: boolean;
8179
9023
  /**
8180
- * Config for Google Tag Manager with optional shouldWaitForDidomi flag
9024
+ * Config for Google Tag Manager
8181
9025
  */
8182
9026
  googleTagManagerConfig?: TagManagerArgs & {
8183
9027
  shouldWaitForDidomi?: boolean;
@@ -8200,8 +9044,6 @@ export declare interface WebConfig {
8200
9044
  };
8201
9045
  monetizationSelectOverlay?: {
8202
9046
  title?: string;
8203
- benefitLeftIcon?: string;
8204
- showFullMonetizationOnMobile?: boolean;
8205
9047
  };
8206
9048
  /**
8207
9049
  * Google Analytics ID. If provided, Google Analytics will be enabled.
@@ -8213,7 +9055,6 @@ export declare interface WebConfig {
8213
9055
  centeredMenu?: boolean;
8214
9056
  /**
8215
9057
  * All values are considered as false if not provided.
8216
- * @deprecated - use settings.allowedSignInProviders inside OrganizationDocument
8217
9058
  */
8218
9059
  socialLogins?: {
8219
9060
  showAppleLogin?: boolean;
@@ -8228,24 +9069,11 @@ export declare interface WebConfig {
8228
9069
  * If true, robots.txt will prevent crawling of the website.
8229
9070
  */
8230
9071
  norobots?: boolean;
8231
- voucher?: {
8232
- voucherConsent: string;
8233
- };
8234
- customTranslations?: Record<string, Record<string, string>>;
8235
- onPurchase?: (monetization: Purchase) => void;
8236
- facebookPixelConfig?: {
8237
- pixelId: string;
8238
- shouldWaitForDidomi?: boolean;
9072
+ customTranslations?: {
9073
+ [key: string]: {
9074
+ [key: string]: string;
9075
+ };
8239
9076
  };
8240
- /**
8241
- * If true, the app will be locked in the "remote controller" mode.
8242
- * This means that the app will not be able to navigate to other pages and will only show the remote controller.
8243
- */
8244
- isRemoteControllerApp?: boolean;
8245
- /**
8246
- * Determines if application should check allowed URL handles when switching applications.
8247
- */
8248
- disableUrlHandleCheck?: boolean;
8249
9077
  /**
8250
9078
  * Map for all handlers
8251
9079
  */
@@ -8272,7 +9100,7 @@ export declare interface WebGridScreenProps {
8272
9100
  */
8273
9101
  export declare interface WebPlayerProps {
8274
9102
  id: string;
8275
- source?: InputSourceParams | PathSourceParams | VideoPath | ChannelPath | null;
9103
+ source?: SourceParams | VideoPath | ChannelPath | null;
8276
9104
  onEnded?: () => any;
8277
9105
  /**
8278
9106
  * If true, the player will inherit the width and height of its parent element.
@@ -8358,8 +9186,6 @@ export declare interface WebPlayerProps {
8358
9186
  setPaymentOverlayVisible?: React_2.Dispatch<React_2.SetStateAction<boolean>>;
8359
9187
  hideOverlay?: boolean;
8360
9188
  sourcePlayMode?: SourcePlayMode;
8361
- adsConfig?: StaticAdsBreak[];
8362
- userAuthCallbacks?: SDKUserAuthCallbacks;
8363
9189
  }
8364
9190
 
8365
9191
  /**