import * as React from 'react'; import type { ProgressContextValue, ProgressProps, ProgressRange } from './types.js'; export declare const ProgressProvider: React.FC, useProgressContext: (consumerName: string) => ProgressContextValue; /** @internal Position of `value` inside `[min, max]` as a percentage; returns `0` for a degenerate range. */ export declare function getProgressPercent(value: number, min: number, max: number): number; /** @internal Clamps a value into `[min, max]`, leaving `null` (indeterminate, or no buffer) alone. */ export declare function clampProgressValue(value: number | null, min: number, max: number): number | null; /** @internal The band `value` falls in, following the HTML `` element's region rules; `undefined` when no threshold was supplied. */ export declare function getProgressRange(value: number, min: number, max: number, bands: { low?: number | undefined; high?: number | undefined; optimum?: number | undefined; }): ProgressRange | undefined; /** @internal Maps a progress `value`/`max` to the `data-state` string: `'indeterminate'` when `value` is null, `'complete'` at or above `max`, else `'loading'`. */ export declare function getState(value: number | null, max: number): 'indeterminate' | 'complete' | 'loading'; /** * Root of a progress bar: clamps `value` into `[min, max]`, renders * `role="progressbar"` with the matching ARIA attributes, and exposes * `data-state`/`data-value`/`data-min`/`data-max` for styling. Under * `role="meter"` it is a static scalar instead — always valued, banded by * `low`/`high`/`optimum` into `data-range`, with no indeterminate or buffer. * * @example * ```tsx * * * * ``` */ export declare const Progress: { ({ value: valueProp, role, min, max: maxProp, low, high, optimum, buffer: bufferProp, getValueLabel, formatOptions, locale, circular, label, showValue, indeterminate, diameter, strokeWidth, children, ref: forwardedRef, ...props }: ProgressProps): React.ReactNode; displayName: string; };