import { IPlaybackEngineAPI, IPlaybackEngine, IPlaybackEngineDependencies, IVideoOutput, PlayableMediaSource, CrossOriginValue, PreloadType, IEngineDebugInfo } from './types'; declare class Engine implements IPlaybackEngine { static moduleName: string; static dependencies: string[]; private _eventEmitter; private _config; private _output; private _defaultOutput; constructor({ eventEmitter, nativeOutput, config, }: IPlaybackEngineDependencies); private _applyConfig; getElement(): HTMLVideoElement; get isDynamicContent(): boolean; get isDynamicContentEnded(): boolean; get isSeekAvailable(): boolean; get isMetadataLoaded(): boolean; get isPreloadActive(): boolean; get isAutoPlayActive(): boolean; get isSyncWithLive(): boolean; /** * Method for setting source of video to player. * @param src Array with multiple sources * @param callback * @example * player.setSrc([ * 'https://my-url/video.mp4', * 'https://my-url/video.webm', * 'https://my-url/video.m3u8' * ]); * @note * Read more about [video source](/video-source) */ setSrc(src: PlayableMediaSource, callback?: Function): void; /** * Return current source of video * @example * player.getSrc(); // ['https://my-url/video.mp4'] */ getSrc(): PlayableMediaSource; reset(): void; /** * Start playback * @example * player.play(); */ play(): void; /** * Pause playback * @example * player.pause(); */ pause(): void; /** * Toggle (play\pause) playback of video * @example * player.togglePlayback(); */ togglePlayback(): void; /** * Reset video playback * @example * player.play(); * console.log(player.isPaused); // false * ... * player.resetPlayback(); * console.log(player.isPaused); // true; * console.log(player.getCurrentTime()); //0; */ resetPlayback(): void; /** * High level state of video playback. Returns true if playback is paused. * For more advance state use `getPlaybackState` * @example * player.play(); * console.log(player.isPaused); */ get isPaused(): boolean; /** * High level state of video playback. Returns true if playback is ended. Also note, that `isPaused` will return `true` if playback is ended also. * For more advance state use `getPlaybackState` * @example * player.play(); * console.log(player.isEnded); */ get isEnded(): boolean; /** * Method for synchronize current playback with live point. Available only if you playing live source. * @example * player.syncWithLive(); */ syncWithLive(): void; /** * Method for going forward in playback by your value * @param sec - Value in seconds * @example * player.seekForward(5); */ seekForward(sec: number): void; /** * Method for going backward in playback by your value * @param sec - Value in seconds * @example * player.seekBackward(5); */ seekBackward(sec: number): void; /** * Set volume * @param volume - Volume value `0..100` * @example * player.setVolume(50); */ setVolume(volume: number): void; /** * Get volume * @example * player.getVolume(); // 50 */ getVolume(): number; /** * Method for increasing current volume by value * @param value - Value from 0 to 100 * @example * player.increaseVolume(30); */ increaseVolume(value: number): void; /** * Method for decreasing current volume by value * @param value - Value from 0 to 100 * @example * player.decreaseVolume(30); */ decreaseVolume(value: number): void; setMute(isMuted: boolean): void; /** * Mute the video * @example * player.mute(); */ mute(): void; /** * Unmute the video * @example * player.unmute(true); */ unmute(): void; /** * Get mute flag * @example * player.mute(); * player.isMuted; // true * player.unmute(); * player.isMuted: // false */ get isMuted(): boolean; /** * Set autoplay flag * @example * player.setAutoplay(); */ setAutoplay(isAutoplay: boolean): void; /** * Get autoplay flag * @example * player.getAutoplay(); // true */ getAutoplay(): boolean; /** * Set loop flag * @param isLoop - If `true` video will be played again after it will finish * @example * player.setLoop(true); */ setLoop(isLoop: boolean): void; /** * Get loop flag * @example * player.getLoop(); // true */ getLoop(): boolean; /** * Method for setting playback rate */ setPlaybackRate(rate: number): void; /** * Return current playback rate */ getPlaybackRate(): number; /** * Set preload type * @example * player.setPreload('none'); */ setPreload(preload: PreloadType): void; /** * Return preload type * @example * player.getPreload(); // none */ getPreload(): string; /** * Return current time of video playback * @example * player.getCurrentTime(); // 60.139683 */ getCurrentTime(): number; /** * Method for seeking to time in video * @param time - Time in seconds * @example * player.seekTo(34); */ seekTo(time: number): void; /** * Return duration of video * @example * player.getDuration(); // 180.149745 */ getDuration(): number; /** * Return real width of video from metadata * @example * player.getVideoWidth(); // 400 */ getVideoWidth(): number; /** * Return real height of video from metadata * @example * player.getVideoHeight(); // 225 */ getVideoHeight(): number; getBuffered(): TimeRanges; /** * Set playsinline flag * @param isPlaysinline - If `false` - video will be played in full screen, `true` - inline * @example * player.setPlaysinline(true); */ setPlaysinline(isPlaysinline: boolean): void; /** * Get playsinline flag * @example * player.getPlaysinline(); // true */ getPlaysinline(): boolean; /** * Set crossorigin attribute for video * @example * player.setCrossOrigin('anonymous'); */ setCrossOrigin(crossOrigin?: CrossOriginValue): void; /** * Get crossorigin attribute value for video * @example * player.getCrossOrigin(); // 'anonymous' */ getCrossOrigin(): CrossOriginValue; /** * Return current state of playback */ getCurrentState(): import("../../constants/engine-state").default; /** * Return object with internal debug info * * @example * player.getDebugInfo(); * * @note * The above command returns JSON structured like this: * * @example * { * "type": "HLS", * "viewDimensions": { * "width": 700, * "height": 394 * } * "url": "https://example.com/video.m3u8", * "currentTime": 22.092514, * "duration": 60.139683, * "loadingStateTimestamps": { * "metadata-loaded": 76, * "ready-to-play": 67 * }, * "bitrates": [ * // Available bitrates * "100000", * "200000", * ... * ], * // One of available bitrates, that used right now * "currentBitrate": "100000", * // Raw estimation of bandwidth, that could be used without playback stall * "bwEstimate": "120000" * "overallBufferLength": 60.139683, * "nearestBufferSegInfo": { * "start": 0, * "end": 60.139683 * } * } */ getDebugInfo(): IEngineDebugInfo; destroy(): void; changeOutput(output?: IVideoOutput, callback?: Function): void; resetOutput(): void; } export { IPlaybackEngineAPI }; export default Engine;