import type { ObservableEvents } from 'modern-idoc'; import type { Loader } from './loaders'; import { Observable } from 'modern-idoc'; import { FontLoader, GifLoader, JsonLoader, LottieLoader, TextLoader, TextureLoader, VideoLoader } from './loaders'; export type AssetHandler = (blob: Blob, options?: any) => any | Promise; export interface Assets { font: FontLoader; gif: GifLoader; gifWorkerUrl?: string; json: JsonLoader; lottie: LottieLoader; text: TextLoader; texture: TextureLoader; video: VideoLoader; } export interface AssetsEvents extends ObservableEvents { loaded: [id: string, value: any]; } export declare class Assets extends Observable { defaultHandler: AssetHandler; protected _handlers: Map; protected _handleing: Map>; protected _handled: Map; protected _gc: FinalizationRegistry | undefined; constructor(); use(loader: Loader): this; register(mimeType: string, handler: AssetHandler): this; fetch(url: string): Promise; protected _fixSVG(dataURI: string): string; fetchImageBitmap(url: string | Blob, options?: ImageBitmapOptions): Promise; get(id: string): T | undefined; set(id: string, value: any): void; awaitBy(handler: () => Promise): Promise; loadBy(id: string, handler?: () => Promise): Promise; load(url: string, options?: any): Promise; waitUntilLoad(): Promise; gc(): void; } export declare const assets: Assets;