import React, { Component } from 'react'; import '@kinescope/player-iframe-api-loader'; import Api = Kinescope.IframePlayer; type PreloadTypes = NonNullable['preload']; export type VttTypes = NonNullable[number]; export type WatermarkTypes = NonNullable['watermark']>; export type ThemeTypes = NonNullable; export type ChapterTypes = NonNullable[number]; export type CallToActionTypes = NonNullable[number]; export type BookmarkTypes = NonNullable[number]; export type PlaylistOptionsTypes = NonNullable; export type LocalStorageTypes = NonNullable['localStorage']; export type EventInitTypes = { playerId: string; }; export type EventReadyTypes = Api.Player.EventMap[Api.Player.Events['Ready']]; export type EventQualityChangedTypes = Api.Player.EventMap[Api.Player.Events['QualityChanged']]; export type EventCurrentTrackChangedTypes = Api.Player.EventMap[Api.Player.Events['CurrentTrackChanged']]; export type EventSeekChapterTypes = Api.Player.EventMap[Api.Player.Events['SeekChapter']]; export type EventDurationChangeTypes = Api.Player.EventMap[Api.Player.Events['DurationChange']]; export type EventProgressTypes = Api.Player.EventMap[Api.Player.Events['Progress']]; export type EventTimeUpdateTypes = Api.Player.EventMap[Api.Player.Events['TimeUpdate']]; export type EventVolumeChangeTypes = Api.Player.EventMap[Api.Player.Events['VolumeChange']]; export type EventPlaybackRateChangeTypes = Api.Player.EventMap[Api.Player.Events['PlaybackRateChange']]; export type EventPipChangeTypes = Api.Player.EventMap[Api.Player.Events['PipChange']]; export type EventSizeChangedTypes = Api.Player.EventMap[Api.Player.Events['SizeChanged']]; export type EventFullscreenChangeTypes = Api.Player.EventMap[Api.Player.Events['FullscreenChange']]; export type EventCallActionTypes = Api.Player.EventMap[Api.Player.Events['CallAction']]; export type EventCallBookmarkTypes = Api.Player.EventMap[Api.Player.Events['CallBookmark']]; export type EventErrorTypes = Api.Player.EventMap[Api.Player.Events['Error']]; export type QueryTypes = { seek?: number; duration?: number; playerId?: string; }; export type PlayerPropsTypes = { videoId: string | string[]; query?: QueryTypes; className?: string; style?: any; onJSLoad?: () => void; onJSLoadError?: () => void; title?: string; subtitle?: string; poster?: string; width?: number | string; height?: number | string; autoPlay?: boolean | 'viewable'; autoPause?: boolean | 'reset'; loop?: boolean; playsInline?: boolean; preload?: PreloadTypes; muted?: boolean; language?: 'ru' | 'en'; controls?: boolean; mainPlayButton?: boolean; playbackRateButton?: boolean; /** * Whether to include subtitles when loading the video. * - `true` - auto-select in the following order: in the browser language, in the player language, first in the list. * - `string` - enable the track with the specified language. */ textTrack?: boolean | string; chapters?: ChapterTypes[]; vtt?: VttTypes[]; externalId?: string; drmAuthToken?: string; callToAction?: CallToActionTypes[]; bookmarks?: BookmarkTypes[]; watermark?: WatermarkTypes; localStorage?: LocalStorageTypes; playlistOptions?: PlaylistOptionsTypes; theme?: ThemeTypes; onInit?: (data: EventInitTypes) => void; onInitError?: (error: Error) => void; onReady?: (data: EventReadyTypes) => void; onQualityChanged?: (data: EventQualityChangedTypes) => void; onCurrentTrackChanged?: (data: EventCurrentTrackChangedTypes) => void; onSeekChapter?: (data: EventSeekChapterTypes) => void; onSizeChanged?: (data: EventSizeChangedTypes) => void; onPlay?: () => void; onPlaying?: () => void; onWaiting?: () => void; onPause?: () => void; onEnded?: () => void; onTimeUpdate?: (data: EventTimeUpdateTypes) => void; onProgress?: (data: EventProgressTypes) => void; onDurationChange?: (data: EventDurationChangeTypes) => void; onVolumeChange?: (data: EventVolumeChangeTypes) => void; onPlaybackRateChange?: (data: EventPlaybackRateChangeTypes) => void; onPipChange?: (data: EventPipChangeTypes) => void; onSeeked?: () => void; onFullscreenChange?: (data: EventFullscreenChangeTypes) => void; onCallAction?: (data: EventCallActionTypes) => void; onCallBookmark?: (data: EventCallBookmarkTypes) => void; onError?: (data: EventErrorTypes) => void; onDestroy?: () => void; }; declare class Player extends Component { private playerLoad; private readonly parentsRef; private player; static defaultProps: { width: string; height: string; autoPause: boolean; localStorage: boolean; playsInline: boolean; }; componentDidUpdate(prevProps: Readonly): Promise; componentWillUnmount(): void; private handleJSLoad; private shouldPlayerUpdate; private shouldPlaylistUpdate; private updateTitleOptions; private updatePosterOptions; private updateSubtitleOptions; private updateDrmAuthTokenOptions; private updateChaptersOptions; private updateVttOptions; private updateBookmarksOptions; private updateCtaOptions; private readyPlaylistOptions; private create; private destroy; private getEventList; private getQueryParams; private makeURL; private getIFrameUrl; private createPlayer; private setPlaylistItemOptions; isPaused: () => Promise; isEnded: () => Promise; play: () => Promise; pause: () => Promise; stop: () => Promise; getCurrentTime: () => Promise; getDuration: () => Promise; seekTo: (time: number) => Promise; isMuted: () => Promise; mute: () => Promise; unmute: () => Promise; getVolume: () => Promise; setVolume: (value: number) => Promise; getPlaybackRate: () => Promise; setPlaybackRate: (value: number) => Promise; getVideoQualityList: () => Promise; getVideoQuality: () => Promise; setVideoQuality: (quality: Api.VideoQuality) => Promise; enableTextTrack: (lang: string) => Promise; disableTextTrack: () => Promise; closeCTA: () => Promise; isFullscreen: () => Promise; setFullscreen: (fullscreen: boolean) => Promise; isPip: () => Promise; setPip: (pip: boolean) => Promise; getPlaylistItem: () => Promise<{ id: string | undefined; } | undefined>; switchTo: (id: string) => Promise; next: () => Promise; previous: () => Promise; private handleEventReady; private handleQualityChanged; private handleCurrentTrackChanged; private handleSeekChapter; private handleSizeChanged; private handlePlay; private handlePlaying; private handleWaiting; private handlePause; private handleEnded; private handleTimeUpdate; private handleProgress; private handleDurationChange; private handleVolumeChange; private handlePlaybackRateChange; private handlePipChange; private handleSeeked; private handleFullscreenChange; private handleCallAction; private handleCallBookmark; private handleError; private handleDestroy; render(): React.JSX.Element; } export default Player;