import { Texture2D } from './Texture2D'; export interface VideoTextureOptions { autoLoad?: boolean; autoPlay?: boolean; fps?: number; crossorigin?: boolean | string | null; loop?: boolean; muted?: boolean; playsinline?: boolean; } export interface VideoTextureLike { src: string; mime: string; } export declare class VideoTexture extends Texture2D { autoUpdate: boolean; fps: number; static readonly mimeTypes: Map; get isReady(): boolean; get isPlaying(): boolean; get duration(): number; get seeking(): boolean; get currentTime(): number; set currentTime(val: number); get paused(): boolean; get muted(): boolean; set muted(val: boolean); get loop(): boolean; set loop(val: boolean); get playbackRate(): number; set playbackRate(val: number); /** 原生播放(用于跟随时间轴的连续播放,触发 requestVideoFrameCallback 高效上传)。 */ play(): void; pause(): void; protected _spf: number; protected _autoPlay: boolean; protected _sourceLoad?: Promise; protected _nextTime: number; protected _connected: boolean; protected _requestId?: number; protected _resolve?: (val: this) => void; protected _reject?: (event: ErrorEvent) => void; protected _seekResolves: Array<() => void>; constructor(source: HTMLVideoElement | (string | VideoTextureLike)[] | string, options?: VideoTextureOptions); protected _updateProperty(key: string, value: any, oldValue: any): void; protected _onPlayStart: () => void; protected _onPlayStop: () => void; protected _onCanPlay: () => void; protected _onError: (event: ErrorEvent) => void; /** Fired when the video is completed seeking to the current playback position. */ protected _onSeeked: () => void; protected _flushSeekResolves(): void; waitSeek(signal?: AbortSignal): Promise; protected _setupAutoUpdate(): void; protected _videoFrameRequestCallback: () => void; requestUpload: () => void; load(): Promise; protected _destroy(): void; }