import type { CSSProperties } from 'react'; export declare enum KinescopePlayerEvent { Ready = 0, QualityChanged = 1, CurrentTrackChanged = 2, SeekChapter = 3, SizeChanged = 4, Play = 5, Playing = 6, Waiting = 7, Pause = 8, Ended = 9, TimeUpdate = 10, Progress = 11, Seeked = 12, DurationChange = 13, VolumeChange = 14, PlaybackRateChange = 15, FullscreenChange = 16, CallAction = 17, CallBookmark = 18, Error = 19, Destroy = 20 } export interface PlaylistItemOptions { title?: string; subtitle?: string; poster?: string; vtt?: { label: string; src: string; srcLang: string; }[]; chapters?: { position: number; title: string; }[]; bookmarks?: { id: string; time: number; title?: string; }[]; actions?: (ActionToolBar | ActionCallToAction)[]; drm?: { auth?: { token?: string; }; }; } export declare type VideoQuality = 'auto' | 'index' | 144 | 240 | 360 | 480 | 576 | 720 | 1080 | 1440 | 2160 | 4320; export declare type VideoQualityLevels = { [quality in VideoQuality]: { level: number; url?: string; }; }; export declare type WatermarkModeTypes = 'stripes' | 'random'; export declare type WatermarkTypes = string | { text: string; mode?: WatermarkModeTypes; scale?: number; displayTimeout?: number | { visible: number; hidden: number; }; }; export declare type ActionToolBar = { id: string; type: 'tool'; title?: string; icon: 'note'; }; export declare type ActionCallToAction = { id: string; type: 'cta'; title: string; description?: string; skipable?: boolean; buttonStyle?: CSSProperties; trigger: { percentages: number[]; timePoints: number[]; pause: boolean; }; }; export interface KinescopePlayer { on: (event: KinescopePlayerEvent, callback: any) => void; once: (event: KinescopePlayerEvent, callback: any) => void; off: (event: KinescopePlayerEvent, callback: any) => void; Events: typeof KinescopePlayerEvent; 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: VideoQuality): Promise; enableTextTrack(lang: string): Promise; disableTextTrack(): Promise; closeCTA(): Promise; isFullscreen(): Promise; setFullscreen(fullscreen: boolean): Promise; setPlaylistItemOptions(options: PlaylistItemOptions): Promise; getPlaylistItem(): Promise<{ id: string | undefined; } | undefined>; switchTo(id: string): Promise; next(): Promise; previous(): Promise; destroy(): Promise; } export interface KinescopeCreateOptions { url: string; size?: { width?: number | string; height?: number | string; }; playlist: PlaylistItemOptions[]; behaviour?: { autoPlay?: boolean | 'viewable'; autoPause?: boolean | 'reset'; loop?: boolean; playsInline?: boolean; muted?: boolean; localStorage?: boolean; }; ui?: { language?: 'ru' | 'en'; controls?: boolean; mainPlayButton?: boolean; playbackRateButton?: boolean; watermark?: WatermarkTypes; }; settings?: { externalId?: string; }; } declare global { interface Window { Kinescope: { IframePlayer: { create: (id: string, options: KinescopeCreateOptions) => Promise; version: string; }; }; } }