import type { ISceneLoaderProgressEvent } from "@babylonjs/core/Loading/sceneLoader";
import type { Nullable } from "@babylonjs/core/types";
/** @internal */
export interface ProgressTask {
    readonly name: string;
    readonly cost: number;
}
/** @internal */
export declare class Progress {
    readonly lengthComputable: boolean;
    readonly total: number;
    private readonly _onProgress;
    private readonly _unprocessedTasks;
    private readonly _processingTasks;
    private readonly _endedTaskNames;
    private _endedTasksTotal;
    constructor(lengthComputable: boolean, tasks: ProgressTask[], onProgress: Nullable<(progress: ISceneLoaderProgressEvent) => void>);
    private _getTaskState;
    processTask(taskName: string, cost: number): void;
    setTaskProgress(taskName: string, progress: number): boolean;
    setTaskProgressRatio(taskName: string, ratio: number, useFloor: boolean): boolean;
    endTask(taskName: string): void;
    invokeProgressEvent(): void;
    get loaded(): number;
}
