import { PrivatePlayer } from '../../BoclipsPlayer/BoclipsPlayer'; import { Video } from '../../types/Video'; import { MediaPlayer, PlaybackSegment } from '../MediaPlayer'; import { AddonInterface } from './Addons/Addons'; import { Logger } from '../../Logger'; import './sass/plyr.scss'; import { OnReadyResult } from '../../types/OnReadyResult'; export default class PlyrWrapper implements MediaPlayer { private readonly player; private readonly logger; private plyr; private streamingTechnique; private hasBeenDestroyed; private enabledAddons; private playback; private onEndCallback?; private onReadyCallback?; private segment; private hasPlaybackStarted; constructor(player: PrivatePlayer, logger?: Logger); private createStreamPlyr; private initialiseStreamingTechnique; private createYoutubePlyr; private installPlyrEventListeners; private disableAutoGeneratedCaptions; configureWithVideo: (video: Video, segment?: PlaybackSegment) => void; private addSliderBackground; private handlePlayerTimerWithStartSegment; private handleStartMarkerSliderThumb; private addTimelineBackgroundBeforeStartMark; private addTimelineBackgroundAfterEndMark; private addRemoveMarksButton; private autoStop; private stopStreamingTechnique; private handleEnterFullscreen; private handleExitFullscreen; play: () => Promise; pause: () => void; onEnd: (callback: (endOverlay: HTMLDivElement) => void) => void; onReady: (callback: (result: OnReadyResult) => void) => void; destroy: () => void; private handleBeforeUnload; private resetPlyrInstance; private installAddons; private destroyAddons; private updateAddonSegments; private getOptions; getSegment: () => PlaybackSegment; private getDisplayAutogeneratedCaptions; getVideoContainer: () => HTMLVideoElement; getCurrentTime: () => number; getEnabledAddons: () => AddonInterface[]; private getPlyrDivContainer; }