import { type CSSProperties, type HTMLAttributes } from "react";
import { type LabelRequiredForA11y } from "../types.js";
import { type ProgressProps } from "./types.js";
/**
 * @since 6.0.0 Added the `theme` prop
 */
export interface LinearProgressProps extends Omit<HTMLAttributes<HTMLSpanElement>, "id" | "children">, ProgressProps {
    /**
     * An optional style to apply to the progress bar. This will be merged with
     * the current width or height tracking the progress when a `value` is also
     * provided.
     */
    barStyle?: CSSProperties;
    /**
     * An optional className to apply to the progress bar.
     */
    barClassName?: string;
    /**
     * Boolean if the progress should be reversed. This will change the progress
     * direction from `left-to-right` to be `right-to-left`. If the current
     * language is a rtl language and this prop is enabled, the direction will
     * still be `left-to-right`.
     *
     * @defaultValue `false`
     */
    reverse?: boolean;
    /**
     * Boolean if the progress should be vertical instead of horizontal.  When
     * this prop is set, you should also set the `verticalHeight` prop to a height
     * value you want for your progress bar.
     *
     * @defaultValue `false`
     */
    vertical?: boolean;
    /**
     * Since there isn't really a good way to have "auto height", you'll need to
     * manually set the progress bar's height with this prop to some pixel value.
     * If you'd prefer to set the height in Sass/css, set this value to `null`
     * instead since this value would be passed down as a `height` inline style.
     *
     * @defaultValue `240`
     */
    verticalHeight?: number | null;
}
/**
 * **Server Component**
 *
 * @example Indeterminate Example
 * ```tsx
 * import { LinearProgress } from "@react-md/core";
 * import { type ReactElement } from "react";
 *
 * function Example(): ReactElement {
 *   return <LinearProgress aria-label="Loading" />;
 * }
 * ```
 *
 * @example Determinate Example
 * ```tsx
 * import { LinearProgress } from "@react-md/core";
 * import { useState, type ReactElement } from "react";
 *
 * function Example(): ReactElement {
 *   // a number from 0 - 100
 *   const [progress, setProgress] = useState(0);
 *
 *   return <LinearProgress aria-label="File upload" value={progress} />;
 * }
 * ```
 *
 * @since 6.0.0 Supports rendering as any of the theme colors and
 * requires a label for accessibility.
 */
export declare const LinearProgress: import("react").ForwardRefExoticComponent<LabelRequiredForA11y<LinearProgressProps> & import("react").RefAttributes<HTMLSpanElement>>;
