import EventEmitter from '../EventEmitter.js'; export declare enum LoaderEvent { LoadProgress = "load-progress", LoadCancelled = "load-cancelled", LoadWarning = "load-warning", Converted = "converted", Traversed = "traversed" } export interface LoaderEventPayload { [LoaderEvent.LoadProgress]: { progress: number; id: string; }; [LoaderEvent.Converted]: { count: number; }; [LoaderEvent.Traversed]: { count: number; }; [LoaderEvent.LoadCancelled]: string; [LoaderEvent.LoadWarning]: { message: string; }; } export declare abstract class Loader extends EventEmitter { protected _resource: string; protected _resourceData: unknown; abstract get resource(): string; abstract get finished(): boolean; protected constructor(resource: string, resourceData?: unknown); on(eventType: T, listener: (arg: LoaderEventPayload[T]) => void): void; abstract load(): Promise; abstract cancel(): void; dispose(): void; }