@tivio/sdk-react 2.3.4-beta.1 → 2.3.4-beta.2
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/components/ContextProvider.d.ts +3 -0
- package/dist/components/PlayerProvider.d.ts +19 -0
- package/dist/components/TivioProvider.d.ts +17 -0
- package/dist/components/TivioWidget.d.ts +7 -0
- package/dist/components/TivioWidgetError.d.ts +10 -0
- package/dist/components/TivioWidgetLoader.d.ts +6 -0
- package/dist/components/TvTivioProvider.d.ts +7 -0
- package/dist/components/context/ChannelsContext.d.ts +6 -0
- package/dist/components/context/OrganizationSubscriptionsContext.d.ts +9 -0
- package/dist/components/context/PurchasesWithVideosContext.d.ts +9 -0
- package/dist/components/context/RowItemsContext.d.ts +7 -0
- package/dist/components/context/ScreensContext.d.ts +6 -0
- package/dist/components/context/SectionsContext.d.ts +6 -0
- package/dist/components/context/UserContext.d.ts +9 -0
- package/dist/components/context/VideosContext.d.ts +6 -0
- package/dist/components/context/index.d.ts +8 -0
- package/dist/components/context/types.d.ts +27 -0
- package/dist/components/hooks/contentHooks.d.ts +68 -0
- package/dist/components/hooks/index.d.ts +16 -0
- package/dist/components/hooks/playerHooks.d.ts +23 -0
- package/dist/components/hooks/useCancelSubscription.d.ts +2 -0
- package/dist/components/hooks/useError.d.ts +9 -0
- package/dist/components/hooks/useFreePurchase.d.ts +4 -0
- package/dist/components/hooks/useItemsInRow.d.ts +11 -0
- package/dist/components/hooks/useOrganizationSubscriptions.d.ts +4 -0
- package/dist/components/hooks/usePurchaseSubscription.d.ts +3 -0
- package/dist/components/hooks/usePurchasesWithVideos.d.ts +7 -0
- package/dist/components/hooks/useRowsInScreen.d.ts +6 -0
- package/dist/components/hooks/useScreen.d.ts +12 -0
- package/dist/components/hooks/useScreens.d.ts +5 -0
- package/dist/components/hooks/useSearch.d.ts +8 -0
- package/dist/components/hooks/useTaggedVideos.d.ts +11 -0
- package/dist/components/hooks/useTivio.d.ts +3 -0
- package/dist/components/hooks/useTransactionPayment.d.ts +3 -0
- package/dist/components/hooks/useUser.d.ts +5 -0
- package/dist/config.d.ts +17 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +1 -0
- package/dist/services/bundleLoader.d.ts +13 -0
- package/dist/services/bundlePromise.d.ts +4 -0
- package/dist/services/dependencyResolver.d.ts +23 -0
- package/dist/services/logger.d.ts +26 -0
- package/dist/services/packageLoader.d.ts +6 -0
- package/dist/services/pubSub.d.ts +13 -0
- package/dist/services/sentry.d.ts +4 -0
- package/dist/services/settings.d.ts +13 -0
- package/dist/types/bundle.types.d.ts +206 -0
- package/dist/types/common.d.ts +6 -0
- package/dist/types/config.types.d.ts +0 -0
- package/dist/types/customPlayer.types.d.ts +38 -0
- package/dist/types/types.d.ts +176 -0
- package/package.json +1 -1
@@ -0,0 +1,206 @@
|
|
1
|
+
import { SubscribeToTaggedVideos, UseCancelSubscription } from '@tivio/common';
|
2
|
+
import { ComponentType } from 'react';
|
3
|
+
import { Logger } from '../services/logger';
|
4
|
+
import { FetchPackage } from '../services/packageLoader';
|
5
|
+
import { Disposer, Empty, Nullable } from './common';
|
6
|
+
import { Channel, Language, RemoteProviderProps, Section, TivioSources, TivioWidgetProps, UserData, WebPlayerProps, Widget } from './types';
|
7
|
+
import type { AdSource, PlayerWrapper } from './customPlayer.types';
|
8
|
+
import type { Monetization, QerkoPaymentInfo, Screen, SubscribeToItemsInRow, SubscribeToRowsInScreen, SubscribeToScreen, TvAppProps, Video, User, Purchase, UseSearch } from '@tivio/common';
|
9
|
+
import type React from 'react';
|
10
|
+
declare type Settings = {
|
11
|
+
onSetUser: (handler: (userId: string, userPayload: unknown) => void) => void;
|
12
|
+
setUser: (userId: string, userPayload: unknown) => void;
|
13
|
+
};
|
14
|
+
declare type InternalConfig = {
|
15
|
+
enable?: boolean;
|
16
|
+
secret: string | null;
|
17
|
+
verbose?: boolean;
|
18
|
+
resolverUrl: string;
|
19
|
+
bundleUrlOverride?: string;
|
20
|
+
disableUnmounting?: boolean;
|
21
|
+
logger?: Logger | null;
|
22
|
+
fetchPackage: FetchPackage;
|
23
|
+
pubSub: PubSub;
|
24
|
+
LoaderComponent?: ComponentType;
|
25
|
+
ErrorComponent?: ComponentType<{
|
26
|
+
error: string | null;
|
27
|
+
}>;
|
28
|
+
language?: string;
|
29
|
+
sdkVersion: string;
|
30
|
+
enableSentry?: boolean;
|
31
|
+
};
|
32
|
+
declare type Events = {
|
33
|
+
'on-ready': RemoteBundleState;
|
34
|
+
'on-error': Error;
|
35
|
+
};
|
36
|
+
interface PubSub {
|
37
|
+
publish: <K extends keyof Events>(triggerName: K, payload: Events[K]) => Empty;
|
38
|
+
subscribe: <K extends keyof Events>(triggerName: K, onMessage: (data: Events[K]) => Empty) => Disposer;
|
39
|
+
}
|
40
|
+
declare type Config = Pick<InternalConfig, 'enable' | 'secret' | 'verbose' | 'logger' | 'disableUnmounting' | 'bundleUrlOverride' | 'LoaderComponent' | 'ErrorComponent' | 'language' | 'enableSentry'>;
|
41
|
+
declare type TivioSubscriptions = {
|
42
|
+
subscribeToUser: (cb: (error: string | null, user: User | null) => void) => void;
|
43
|
+
/**
|
44
|
+
* Listen to widget changes.
|
45
|
+
* @param widgetId - widget id
|
46
|
+
* @param cb - callback on widget updates or on error
|
47
|
+
*/
|
48
|
+
subscribeToWidget: (widgetId: string, cb: (error: Error | null, data: Widget | null, disposer?: Disposer) => void) => void;
|
49
|
+
/**
|
50
|
+
* Listen to channel changes.
|
51
|
+
* @param channelId - channel id
|
52
|
+
* @param cb - callback on channel updates or on error
|
53
|
+
*/
|
54
|
+
subscribeToChannel: (channelId: string, cb: (error: Error | null, data: Channel | null) => void) => void;
|
55
|
+
/**
|
56
|
+
* Listen to section changes.
|
57
|
+
* @param sectionId - section id
|
58
|
+
* @param cb - callback on section updates or on error
|
59
|
+
*/
|
60
|
+
subscribeToSection: (sectionId: string, cb: (error: Error | null, data: Section | null) => void) => void;
|
61
|
+
/**
|
62
|
+
* Listen to video changes.
|
63
|
+
* @param videoId - video id
|
64
|
+
* @param cb - callback on video updates or on error
|
65
|
+
*/
|
66
|
+
subscribeToVideo: (videoId: string, cb: (error: Error | null, data: Video | null, disposer?: Disposer) => void) => void;
|
67
|
+
/**
|
68
|
+
* Listen to videos in section changes.
|
69
|
+
* @param sectionId - section id
|
70
|
+
* @param cb - callback on videos change or error
|
71
|
+
* @param limit - videos count
|
72
|
+
*/
|
73
|
+
subscribeToVideosInSection: (sectionId: string, cb: (error: null | Error, data: null | {
|
74
|
+
videos: Video[];
|
75
|
+
hasNextPage: boolean;
|
76
|
+
}, fetchMore: null | ((count?: number) => void), isLoading: boolean) => void, limit?: number) => void;
|
77
|
+
/**
|
78
|
+
* Listen to section in channel changes
|
79
|
+
* @param channelId - channel id
|
80
|
+
* @param cb - callback on sections change or error
|
81
|
+
* @param limit - sections count
|
82
|
+
*/
|
83
|
+
subscribeToSectionsInChannel: (channelId: string, cb: (error: null | Error, data: null | {
|
84
|
+
sections: Section[];
|
85
|
+
hasNextPage: boolean;
|
86
|
+
}, fetchMore: null | ((count?: number) => void), isLoading: boolean) => void, limit?: number) => void;
|
87
|
+
/**
|
88
|
+
* Listen to channels in widget changes
|
89
|
+
* @param widgetId - widget id
|
90
|
+
* @param cb - callback on channels change or error
|
91
|
+
* @param limit - channels count
|
92
|
+
*/
|
93
|
+
subscribeToChannelsInWidget: (widgetId: string, cb: (error: null | Error, data: null | {
|
94
|
+
channels: Channel[];
|
95
|
+
hasNextPage: boolean;
|
96
|
+
}, fetchMore: null | ((count?: number) => void), isLoading: boolean) => void, limit?: number) => void;
|
97
|
+
subscribeToScreen: SubscribeToScreen;
|
98
|
+
subscribeToItemsInRow: SubscribeToItemsInRow;
|
99
|
+
subscribeToRowsInScreen: SubscribeToRowsInScreen;
|
100
|
+
subscribeToTaggedVideos: SubscribeToTaggedVideos;
|
101
|
+
};
|
102
|
+
declare type TivioGetters = {
|
103
|
+
isTivioLoaded: (cb: (isLoaded: boolean) => void) => boolean;
|
104
|
+
isSignedIn: () => boolean;
|
105
|
+
/**
|
106
|
+
* Get channel by its id.
|
107
|
+
* @param channelId - channel id
|
108
|
+
* @returns {Promise<Channel | null>} channel or null if channel does not exists
|
109
|
+
*/
|
110
|
+
getChannelById: (channelId: string) => Promise<Channel | null>;
|
111
|
+
/**
|
112
|
+
* Get (or create) player wrapper instance
|
113
|
+
* @param opt - player getter options
|
114
|
+
* @returns {PlayerWrapper} player wrapper instance
|
115
|
+
*/
|
116
|
+
getPlayerWrapper: (opt: {
|
117
|
+
playerWrapperId?: string;
|
118
|
+
}) => PlayerWrapper;
|
119
|
+
getOrganizationScreens: () => Promise<Screen[]>;
|
120
|
+
getOrganizationSubscriptions: () => Promise<Monetization[] | undefined>;
|
121
|
+
/**
|
122
|
+
* Get section by its id.
|
123
|
+
* @param sectionId - section id
|
124
|
+
* @returns {Promise<{section: Section, channel: Channel} | null>} section and channel or null if channel or section does not exists
|
125
|
+
*/
|
126
|
+
getSectionById: (sectionId: string) => Promise<Section | null>;
|
127
|
+
/**
|
128
|
+
* Get video by its id.
|
129
|
+
* @param videoId - video id
|
130
|
+
* @returns {Promise<Video | null>} video or null if video does not exists
|
131
|
+
*/
|
132
|
+
getVideoById: (videoId: string) => Promise<Video | null>;
|
133
|
+
/**
|
134
|
+
* Get widget by its id.
|
135
|
+
* @param widgetId - widget id
|
136
|
+
* @returns {Promise<Widget | null>} widget or null if widget does not exists
|
137
|
+
*/
|
138
|
+
getWidgetById: (widgetId: string) => Promise<Widget | null>;
|
139
|
+
};
|
140
|
+
interface TivioAuth {
|
141
|
+
changePassword: (newPassword: string) => Promise<void>;
|
142
|
+
changeUserPhoto(file: File): Promise<void>;
|
143
|
+
removeUserPhoto(): Promise<void>;
|
144
|
+
getPurchasedVodsWithInitializedVideos: () => Promise<Purchase[]>;
|
145
|
+
/**
|
146
|
+
* @param email
|
147
|
+
* @param password
|
148
|
+
*/
|
149
|
+
createUserWithEmailAndPassword: (email: string, password: string, userData?: UserData) => Promise<void>;
|
150
|
+
/**
|
151
|
+
* Sign in the user and starts listening on his purchases
|
152
|
+
* @param email
|
153
|
+
* @param password
|
154
|
+
*/
|
155
|
+
signInWithEmailAndPassword: (email: string, password: string) => Promise<void>;
|
156
|
+
initializeUser: () => Promise<void>;
|
157
|
+
signOut: () => Promise<void>;
|
158
|
+
createFreePurchase: (monetizationId: string) => Promise<void>;
|
159
|
+
}
|
160
|
+
declare type TivioComponents = {
|
161
|
+
AdIndicationButtonWeb: React.ReactNode;
|
162
|
+
Markers: React.ReactNode;
|
163
|
+
PlayerDataContext: React.ReactNode;
|
164
|
+
Provider: React.ComponentType<RemoteProviderProps>;
|
165
|
+
SkipButtonWeb: React.ReactNode;
|
166
|
+
VideoAdBanner: React.ReactNode;
|
167
|
+
WebPlayer: React.ComponentType<WebPlayerProps>;
|
168
|
+
Widget: React.ComponentType<TivioWidgetProps>;
|
169
|
+
TvPlayer: React.ComponentType<WebPlayerProps>;
|
170
|
+
PlayerDataContextProvider: React.ComponentType<{
|
171
|
+
id: string;
|
172
|
+
}>;
|
173
|
+
SkipButtonTv: React.ComponentType<{
|
174
|
+
Button: React.ComponentType;
|
175
|
+
Label: React.ComponentType;
|
176
|
+
Container: React.ComponentType;
|
177
|
+
onStarted?: () => any;
|
178
|
+
onEnded?: () => any;
|
179
|
+
}>;
|
180
|
+
TvApp: React.ComponentType<TvAppProps>;
|
181
|
+
};
|
182
|
+
declare type TivioHooks = {
|
183
|
+
useAd: () => [(AdSource | null)];
|
184
|
+
useCancelSubscription: UseCancelSubscription;
|
185
|
+
useSearch: UseSearch;
|
186
|
+
};
|
187
|
+
declare type TivioBundle = {
|
188
|
+
components: TivioComponents;
|
189
|
+
getters: TivioGetters;
|
190
|
+
auth: TivioAuth;
|
191
|
+
hooks: TivioHooks;
|
192
|
+
init: (config: Config) => void | Promise<void>;
|
193
|
+
purchaseVideoWithQerko: (videoId: string, monetizationId: string) => Promise<QerkoPaymentInfo>;
|
194
|
+
purchaseSubscriptionWithQerko: (monetizationId: string) => Promise<QerkoPaymentInfo>;
|
195
|
+
setLanguage: (language: Language) => void;
|
196
|
+
setUser: (userId: string, userPayload?: unknown) => void;
|
197
|
+
sources: TivioSources;
|
198
|
+
subscriptions: TivioSubscriptions;
|
199
|
+
};
|
200
|
+
declare type RemoteBundleState = {
|
201
|
+
config: InternalConfig;
|
202
|
+
error: string | null;
|
203
|
+
settings: Settings;
|
204
|
+
state: 'loading' | 'error' | 'ready';
|
205
|
+
} & Nullable<TivioBundle>;
|
206
|
+
export type { RemoteBundleState, Config, Settings, InternalConfig, TivioBundle, TivioHooks, TivioComponents, TivioAuth, TivioGetters, TivioSubscriptions, Events, PubSub, };
|
File without changes
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { Empty } from './common';
|
2
|
+
export interface BasicSource {
|
3
|
+
description: string;
|
4
|
+
name: string;
|
5
|
+
uri: string;
|
6
|
+
type: 'AD' | 'VOD' | 'CHANNEL';
|
7
|
+
}
|
8
|
+
export interface ChannelSource extends BasicSource {
|
9
|
+
from: Date;
|
10
|
+
channelName: string;
|
11
|
+
to: Date;
|
12
|
+
type: 'CHANNEL';
|
13
|
+
}
|
14
|
+
export interface AdSource extends BasicSource {
|
15
|
+
durationMs: number;
|
16
|
+
skipDelayMs: number | null;
|
17
|
+
type: 'AD';
|
18
|
+
canSkip?: boolean;
|
19
|
+
skip?: () => void;
|
20
|
+
}
|
21
|
+
export interface VodSource extends BasicSource {
|
22
|
+
type: 'VOD';
|
23
|
+
}
|
24
|
+
export declare type InputSource = AdSource | ChannelSource | VodSource;
|
25
|
+
export declare type PlayerInterface = {
|
26
|
+
play: () => Empty;
|
27
|
+
pause: () => Empty;
|
28
|
+
seekTo: (positionMs: number) => Empty;
|
29
|
+
setSource: (source: InputSource | null) => Empty;
|
30
|
+
setVolume: (volume: number) => Empty;
|
31
|
+
};
|
32
|
+
export declare type PlayerWrapper = {
|
33
|
+
events: {
|
34
|
+
addListener: <T = any>(event: string, cb: (value: T) => Empty) => Empty;
|
35
|
+
removeAllListeners: () => Empty;
|
36
|
+
};
|
37
|
+
};
|
38
|
+
export declare type UsePlayerEvent = <T = any>(eventName: string) => T | null;
|
@@ -0,0 +1,176 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2021, nangu.TV, a.s. All rights reserved.
|
3
|
+
* nangu.TV, a.s PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
4
|
+
*/
|
5
|
+
/**
|
6
|
+
* Export public client side API
|
7
|
+
*/
|
8
|
+
import { USER_TYPE } from '@tivio/common';
|
9
|
+
import type { Monetization, Video } from '@tivio/common';
|
10
|
+
import type React from 'react';
|
11
|
+
declare type RemoteProviderProps = {
|
12
|
+
disableUnmounting?: boolean;
|
13
|
+
language?: string;
|
14
|
+
};
|
15
|
+
declare type Language = 'cs' | 'en' | 'sk' | 'de' | 'pl';
|
16
|
+
declare type User = {
|
17
|
+
purchases: Purchase[];
|
18
|
+
purchasedVods: Purchase[];
|
19
|
+
purchasedSubscriptions: Purchase[];
|
20
|
+
getPurchasedVodsWithInitializedVideos: () => Promise<Purchase[]>;
|
21
|
+
isPurchasesInitialized: boolean;
|
22
|
+
isSignedIn: boolean;
|
23
|
+
email: string;
|
24
|
+
type?: USER_TYPE;
|
25
|
+
photoURL: string | null;
|
26
|
+
name?: string;
|
27
|
+
authUserId?: string;
|
28
|
+
};
|
29
|
+
interface UserData {
|
30
|
+
name?: string;
|
31
|
+
}
|
32
|
+
declare type Widget = {
|
33
|
+
id: string;
|
34
|
+
channels: Channel[];
|
35
|
+
isEnabled: boolean | null;
|
36
|
+
name: string | null;
|
37
|
+
recentVideos: Video[] | null;
|
38
|
+
widgetId: string | null;
|
39
|
+
lastVideo: Video | null;
|
40
|
+
};
|
41
|
+
declare type Channel = {
|
42
|
+
id: string;
|
43
|
+
name: string;
|
44
|
+
header: string;
|
45
|
+
headerLogo: string;
|
46
|
+
recentVideos: Video[];
|
47
|
+
};
|
48
|
+
declare type Section = {
|
49
|
+
id: string;
|
50
|
+
name: string;
|
51
|
+
channel: Channel;
|
52
|
+
videos: Video[];
|
53
|
+
};
|
54
|
+
declare type Chapter = object;
|
55
|
+
declare type Purchase = {
|
56
|
+
isPurchased: boolean;
|
57
|
+
monetizationId: string;
|
58
|
+
videoId: string;
|
59
|
+
status: string;
|
60
|
+
video: Video | null;
|
61
|
+
};
|
62
|
+
declare type Marker = {
|
63
|
+
id: string;
|
64
|
+
type: string;
|
65
|
+
from: Date;
|
66
|
+
to: Date;
|
67
|
+
count?: number;
|
68
|
+
fromMs?: number;
|
69
|
+
toMs?: number;
|
70
|
+
};
|
71
|
+
declare type BetOffer = {
|
72
|
+
betService: string;
|
73
|
+
league: string;
|
74
|
+
odds: {
|
75
|
+
winner: string;
|
76
|
+
rate: number;
|
77
|
+
}[];
|
78
|
+
sport: string;
|
79
|
+
opponent1: string;
|
80
|
+
opponent2: string;
|
81
|
+
time: Date;
|
82
|
+
};
|
83
|
+
export interface TivioWidgetProps {
|
84
|
+
id: string;
|
85
|
+
ref: React.MutableRefObject<TivioWidgetRef>;
|
86
|
+
onEnabled?: (enabled: boolean) => any;
|
87
|
+
onBlur?: (event: {
|
88
|
+
key: string;
|
89
|
+
width: number;
|
90
|
+
x: number;
|
91
|
+
}) => any;
|
92
|
+
}
|
93
|
+
export interface TivioWidgetRef {
|
94
|
+
focus: (args: {
|
95
|
+
x?: number;
|
96
|
+
}) => void;
|
97
|
+
handleKey: (key: string) => ({
|
98
|
+
handled: boolean;
|
99
|
+
x: number;
|
100
|
+
});
|
101
|
+
unfocus: () => ({
|
102
|
+
x: number;
|
103
|
+
});
|
104
|
+
}
|
105
|
+
interface VodTivioSource {
|
106
|
+
type: 'VodTivioSource';
|
107
|
+
description: string;
|
108
|
+
path: string;
|
109
|
+
name: string;
|
110
|
+
uri: string;
|
111
|
+
poster?: string;
|
112
|
+
adMonetizationId?: string;
|
113
|
+
}
|
114
|
+
interface ChannelSource {
|
115
|
+
type: 'ChannelSource';
|
116
|
+
uri: string;
|
117
|
+
originalOptions: any;
|
118
|
+
channelName: string;
|
119
|
+
programName: string;
|
120
|
+
programDescription: string;
|
121
|
+
from: Date;
|
122
|
+
to: Date;
|
123
|
+
poster?: string;
|
124
|
+
}
|
125
|
+
declare type VideoPath = string;
|
126
|
+
interface WebPlayerProps {
|
127
|
+
id: string;
|
128
|
+
source?: VodTivioSource | ChannelSource | VideoPath | null;
|
129
|
+
onEnded?: () => any;
|
130
|
+
className?: string;
|
131
|
+
/**
|
132
|
+
* default false
|
133
|
+
*
|
134
|
+
* If you choose `autoplay` make sure that autoplay is allowed in the specific situation.
|
135
|
+
* In some cases it may not be allowed, e.g. before the user interacted with the site, and the video
|
136
|
+
* will stay paused.
|
137
|
+
*
|
138
|
+
* Source: https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide
|
139
|
+
*/
|
140
|
+
autoplay?: boolean;
|
141
|
+
/**
|
142
|
+
* default false
|
143
|
+
*/
|
144
|
+
canReplay?: boolean;
|
145
|
+
/**
|
146
|
+
* default false
|
147
|
+
*/
|
148
|
+
showMarkers?: boolean;
|
149
|
+
/**
|
150
|
+
* number[] is array of keyboard event.which numeric codes
|
151
|
+
* (see https://keycode.info/)
|
152
|
+
*/
|
153
|
+
customShortcuts?: Partial<{
|
154
|
+
toggleFullscreen: number[];
|
155
|
+
togglePause: number[];
|
156
|
+
toggleMute: number[];
|
157
|
+
jumpForward: number[];
|
158
|
+
jumpBack: number[];
|
159
|
+
volumeUp: number[];
|
160
|
+
volumeDown: number[];
|
161
|
+
}>;
|
162
|
+
/**
|
163
|
+
* default true
|
164
|
+
*/
|
165
|
+
enableKeyboardShortcuts?: boolean;
|
166
|
+
onProgress?: (event: React.ChangeEvent<HTMLVideoElement>) => void;
|
167
|
+
onLoadedMetadata?: (event: React.ChangeEvent<HTMLVideoElement>) => void;
|
168
|
+
onPlayerControllerCreated?: (playerController: any) => void;
|
169
|
+
}
|
170
|
+
declare type TivioSources = {
|
171
|
+
AdSource: any;
|
172
|
+
ChannelSource: any;
|
173
|
+
VodExternalSource: any;
|
174
|
+
VodTivioSource: any;
|
175
|
+
};
|
176
|
+
export type { RemoteProviderProps, WebPlayerProps, Marker, BetOffer, Purchase, Chapter, Language, Widget, Channel, Section, Video, TivioSources, UserData, User, Monetization, VodTivioSource, };
|