/// declare module 'playcraft' { export interface SupportEnvironmentItem { device?: { type: string }; os?: { name: string; version: string }; browser?: { name: string; version: string }; }; export interface Recommendation { title: string; content: React.ReactNode; }; export interface PlayerInstance { load(): void; }; export interface PlayerProps { ref?: MutableRefObject; licenseKey: string; config?: object; host?: string; accessToken?: string; deviceId?: string; content?: { contentId: number | string; contentType: 'videos' | 'lives'; }; customHeader?: object; customQuery?: object; lang?: 'en' | 'ja' | 'zh-TW'; langCustomCode?: object; preload?: 'auto' | 'none'; autoplay?: boolean; autoplayNext?: boolean; startTime?: number; quality?: string | number | { default: string | number; getQualityText?({width: number, height: number}): string; qualitySelectionHack: boolean; }; mediaSource?: string; thumbnailSeeking?: boolean; supportEnvironmentList?: Array; limitOnePlaybackAtSameTime?: boolean; recommendation?: Recommendation; coverImageUrl?: string; widevine?: 'force-l1' | 'device' | 'auto' | 'force-l3'; plugins?: Array; drm?(object): any; sentry?(object): any; onSourceLoaded?(): void; onReady?(): void; onPlay?(): void; onPaused?(): void; onPlaying?(): void; onEnded?(): void; onError?(error: object): void; onBack?(contentId: number | string): void; onTimeChanged?(currentTime: number): void; onSeek?(seekTarget: number, position: number): void; onSeeked?(currentTime: number): void; onVolumeChanged?(targetVolume: number, sourceVolume: number): void; onMuted?(): void; onUnmuted?(): void; onVideoQualityChanged?(targetQuality: string, sourceQuality: string): void; onMediaSourceChanged?(mediaSource: string): void; onViewModeChange?(viewModeChangedEvent: object): void; onEnterFullscreen?(): void; onExitFullscreen?(): void; onStallStarted?(): void; onStallEnded?(): void; onReplay?(): void; onChangeVideo?(content: object): void; onChangeToNextVideo?(content: object): void; onChangeToPreviousVideo?(content: object): void; onLogging?(type: string, property: object): void; onSectionChange?(sectionChangedEvent: object): void; }; export const Player: React.FunctionComponent; } declare module 'playcraft/react' { export interface Intl { locale?: string, messages?: object, } export type uiMode = 'standalone' | 'embedded'; export interface PremiumPlayerProps { source: object; startTime?: number; autoplay?: boolean; quality?: object; title?: string; metadata?: object; chapters?: object[]; // channelTitle?: string; playbackState?: string; quality?: object; currentTime?: number; playbackRate?: number; volume?: number; textTracks?: { mode: 'showing' | 'hidden' cues: { startTime: number endTime: number text: string }[] }[] thumbnailsUrl?: string; controls?: object; // marks?: object[], intl?: Intl; settings?: object; plugins?: object[]; modulesConfig?: object; blocking?: boolean; style?: object; children?: React.ReactNode; uiMode?: uiMode; uiElements?: object; onError?: function; onPlaybackStateChange?: function; onBack?: function; onChangeNext?: function; onChangePrevious?: function; onOpenSettings?: function; onChangeSettings?: function; onPlayerLoaded?: function; onBlockedAutoplay?: function; sendLog?: function; license: string; validationHost: string; videoRef?: React.useRef, bitmovin?: object; shaka?: object; modulesConfig?: { [key: string]: string } drm?: object; muted?: boolean; loop?: boolean; } export const PremiumPlayer: React.FunctionComponent; export interface CoverImageProps { src?: string }; export const CoverImage: React.FunctionComponent; export const FunctionBarExtension = React.FunctionComponent; export const InfoBarExtension = React.FunctionComponent; export const TitleBarExtension = React.FunctionComponent; export const Addons = React.FunctionComponent; } declare module 'playcraft/modules' { export const createApi: function; export const startSession: function; export const getContentInfo: function; export const getStreamInfo: function; export const mapLogEvents: function; export const logEventNames: function; export const selectHlsQualities: function; export const addSentry: function; } declare module 'playcraft/plugins' { export const MediaTailorPlugin: function; export const ImaDaiPlugin: function; export const StallReloadPlugin: function; }