import { ProgressOptions } from './progress.types'; /** * Headless progress controller. Manages the ARIA `progressbar` role and value * attributes, reflects state on `data-state`, and exposes the completion * percentage as a `--c42-progress-percent` custom property on the root so CSS * can size the indicator. It never applies visual styles itself. * * Determinate and indeterminate (loading) modes are both supported. * * Markup: * ```html *
*
*
*
* *
* ``` */ export declare class Progress { private readonly root; private readonly labelEl; private value; private min; private max; private indeterminate; private cleanups; constructor(root: HTMLElement, options?: ProgressOptions); private clamp; private get percent(); private render; private emit; /** Set the current value (clamped to [min, max]). Exits indeterminate mode. */ setValue(value: number): void; /** Update the upper bound and re-clamp the value. */ setMax(max: number): void; /** Toggle the indeterminate (loading) state. */ setIndeterminate(indeterminate: boolean): void; getValue(): number; /** Subscribe to a DOM event on the root element. Returns an unsubscribe fn. */ on(event: string, handler: (event: E) => void): () => void; destroy(): void; }