import type { VideoReader } from "./interfaces"; /** * VideoReaderManager is responsible for managing multiple VideoReader instances. * It handles video decoder initialization, frame preparation, and lifecycle management. */ export declare class VideoReaderManager { /** * Checks whether the given PAG composition contains any video content. * @param wasmIns - The WebAssembly instance to check * @returns True if the composition contains video, false otherwise */ static HasVideo(wasmIns: any): boolean; /** * Factory method to create and initialize a VideoReaderManager instance. * @param wasmIns - The WebAssembly instance containing video information * @returns A promise that resolves to a fully initialized VideoReaderManager instance */ static make(wasmIns: any): Promise; /** WebAssembly instance for video information management */ wasmIns: any; /** Array of video IDs managed by this instance */ videoIDs: Array; /** Flag indicating whether this instance has been destroyed */ isDestroyed: boolean; /** Map storing VideoReader instances indexed by video ID */ private videoReaderMap; /** * Constructor for VideoReaderManager. * Initializes the WASM instance and retrieves all video IDs. * @param wasmIns - The WebAssembly instance * @throws Error if VideoReaderManager creation fails */ constructor(wasmIns: any); /** * Creates VideoReader instances for all videos in the PAG file. * For each video ID, retrieves MP4 data and initializes the corresponding VideoReader. * Also prepares the first frame with the initial playback rate. */ createVideoReader(): Promise; /** * Retrieves a VideoReader instance by video ID. * Marks the video as using hardware decoding (software decode disabled). * @param id - The video ID * @returns The VideoReader instance or undefined if not found * @throws Error if VideoReader is not found for the given ID */ getVideoReaderByID(id: number): VideoReader | undefined; /** * Prepares target frames for all videos based on current playback position. * This method is called during rendering to ensure the correct frames are decoded. * It handles both hardware and software decoding modes. */ prepareTargetFrame(): Promise; /** * Destroys the VideoReaderManager instance and cleans up all resources. * This includes destroying the WASM instance, all VideoReader instances, * and clearing internal maps. */ destroy(): void; }