export type JobProgressPhase = 'preparing' | 'working' | 'finishing'; export interface JobProgressBox { value: T; } export interface JobProgress { running: JobProgressBox; progress: JobProgressBox; current: JobProgressBox; total: JobProgressBox; generation: () => number; start: (total?: number) => number; setTotal: (total: number, gen?: number) => boolean; tick: (value: number, slide?: number, gen?: number, options?: { yieldPaint?: boolean; }) => Promise; finish: (gen?: number) => boolean; isCurrent: (gen: number) => boolean; subscribe: (listener: () => void) => () => void; } export interface JobProgressLabels { running: string; preparing: string; finishing: string; slideProgress: (params: { current: number; total: number; }) => string; } export declare function jobProgressPhase(current: number, total: number): JobProgressPhase; export declare function jobBoxValue(box: T | { value: T; } | undefined, fallback: T): T; export declare function formatJobProgressTip(running: boolean, current: number, total: number, labels: JobProgressLabels): string; export declare function slideJobProgress(index: number, count: number, start?: number, end?: number): number; export declare const isAbortError: (error: unknown) => boolean; export declare function createJobProgress(): JobProgress;