import type { Composition, JSONScene } from '@predy-js/specification'; import type { PlayerScene, PredyPlayerLoadOptions } from '../player/type'; import type { Renderer, TextureFactorySourceFrom, TextureOptions } from '@predy-js/render-interface'; import type { ImageSource, PredyPluginLoadedScene } from '../player/PluginSystem'; import { PluginSystem } from '../player/PluginSystem'; export declare enum PredyCompressedTextureLevel { none = 0, full = 1, half = 2 } export declare class JSONLoader { url?: string; baseUrl: string; options: PredyPlayerLoadOptions; _timeout: number; _json: JSONScene; _loadedCompositions: Composition[]; _usedImages: Record; _loadedImages: Array; _loadedTextures: TextureOptions[]; _restoreData: Record; _pluginSystem: PluginSystem; _loadedBins: ArrayBuffer[]; _loadedJSON: PredyPluginLoadedScene; _renderer?: Renderer; id: number; totalTime: number; env: string; private loadInfo; constructor(url: string | JSONScene, options?: PredyPlayerLoadOptions); loadJSONAsync(): Promise; private processCompositions; loadBinsAsync(): Promise; loadImagesAsync(): Promise; precompileAsync(): Promise; loadTexturesAsync(): Promise; loadPluginResourceAsync(): Promise>; getLoadedScene(): PredyPluginLoadedScene; loadSceneAsync(): Promise; } export declare function loadVideoAsync(opt: { url: string | HTMLVideoElement['srcObject']; loop?: boolean; }): Promise;