import type { LoadDataStateProgress } from './load-data.types.js'; import { Observer } from '../observer.js'; export type ProgressbarStage = keyof typeof loadStages; export type ProgressbarTiming = { stage: ProgressbarStage; title: string; duration: number; }; export type ProgressbarOnTimingCallback = (timing: ProgressbarTiming) => void; export type ProgressbarOnFinishCallback = (timings: ProgressbarTiming[] & { awaitRepaintPenaltyTime: number; }) => void; export type ProgressbarOptions = Partial<{ onTiming: ProgressbarOnTimingCallback; onFinish: ProgressbarOnFinishCallback; domReady: Promise; }>; export type ProgressbarState = { stage: ProgressbarStage; progress: LoadDataStateProgress | null; error: Error | null; }; export declare const loadStages: { inited: { value: number; duration: number; title: string; }; request: { value: number; duration: number; title: string; }; receiving: { value: number; duration: number; title: string; }; decoding: { value: number; duration: number; title: string; }; received: { value: number; duration: number; title: string; }; prepare: { value: number; duration: number; title: string; }; initui: { value: number; duration: number; title: string; }; done: { value: number; duration: number; title: string; }; error: { value: number; duration: number; title: string; }; }; export declare function decodeStageProgress(stage: ProgressbarStage, progress: ProgressbarState['progress'], step?: string): { stageTitle: string; progressValue: number; progressText: string | null; stepText: string; title: string; }; export declare class Progressbar extends Observer { #private; startTime: number | null; lastStageStartTime: number | null; awaitRepaintPenaltyTime: number; finished: boolean; awaitRepaint: number | null; timings: ProgressbarTiming[]; onTiming: ProgressbarOnTimingCallback; onFinish: ProgressbarOnFinishCallback; appearanceDelay: number; domReady: Promise; el: HTMLElement; constructor({ onTiming, onFinish, domReady }: ProgressbarOptions); recordTiming(stage: ProgressbarStage, start: number, end?: number): void; setState(state: Partial, step?: string): Promise; setStateStep(step: string): Promise; finish(error?: Error): void; dispose(): void; }