import { IOnMediaRecordHandle } from "../utils/media"; import { IPluginEvent, IPluginEventMap, Plugin } from "./types"; import { IPuOption } from "../main"; import { IRecorderConfig } from "src/utils/webmContainerUtils"; interface IVideoPluginEvent extends IPluginEvent { target: VideoPlugin; } interface IVideoPluginEventMap extends IPluginEventMap { canplay: IVideoPluginEvent; play: IVideoPluginEvent; pause: IVideoPluginEvent; loadedmetadata: IVideoPluginEvent; recordTimeChange: { totalTimeMS: number; }; } export interface IVideoPluginOptions { url?: string; callBack?: (video: HTMLVideoElement) => void | undefined; srcObject?: MediaProvider | null; autoPlay?: boolean; muted?: boolean; puOptions?: IPuOption; recorderConfig?: IRecorderConfig; } declare class VideoPlugin extends Plugin { private _videoEl; private _canvasEl; private _canvasEnabled; private _canvasControl?; private _recorder?; private _mediaStream?; private _rotateDeg; url?: string; autoPlay: boolean; muted: boolean; volume: number; srcObject: MediaProvider | null; private puOptions?; private recorderConfig?; constructor(options?: Partial); set paused(v: boolean); get paused(): boolean; init(): HTMLDivElement; set canvasEnabled(enabled: boolean); get canvasEnabled(): boolean; get rotateDeg(): number; get screenEl(): HTMLCanvasElement | HTMLVideoElement; getVideoEl(): HTMLVideoElement; getCanvasEl(): HTMLCanvasElement; setCanvasEl(newEl: HTMLCanvasElement): void; private _captureStream; setCaptureProvider(capture?: () => MediaStream): void; play(): Promise; pause(): void; screenshot(): Promise<{ blob: Blob | null; fileName: string; download(fileNameCaller?: string | undefined): void; } | undefined>; private _genFileName; recordStart(): Promise; recordStop(onRecordInfo?: IOnMediaRecordHandle): void; rotate(degStep: number): void; beforeDestroy(): void; } export default VideoPlugin;