import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export type GaugeVariant = "arc" | "circle" | "linear";
export interface GaugeBand {
    /** Inclusive lower bound (in the value domain). */
    from: number;
    /** Exclusive upper bound. */
    to: number;
    /** Color for this band. */
    color: string;
    /** Optional label for the legend. */
    label?: ReactNode;
}
export interface GaugeProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange"> {
    /** Current value. */
    value: number;
    /** Lower bound of the domain. Default 0. */
    min?: number;
    /** Upper bound of the domain. Default 100. */
    max?: number;
    variant?: GaugeVariant;
    /**
     * Threshold bands. When provided, the fill color resolves to the band
     * containing `value`. When omitted, the fill uses `color`.
     */
    bands?: GaugeBand[];
    /** Fill color when no bands are provided. Default `var(--ods-accent)`. */
    color?: string;
    /** Track / unfilled color. Default `var(--ods-surface-subtle)`. */
    trackColor?: string;
    /** Pixel size for arc / circle variants. Default 120. */
    size?: number;
    /** Stroke thickness for arc / circle variants. Default size/8. */
    thickness?: number;
    title?: ReactNode;
    /** Large center value. Defaults to formatValue(value). */
    valueLabel?: ReactNode;
    /** Small caption under the value. */
    unit?: ReactNode;
    /** Show the threshold band legend below the gauge. Default false. */
    showLegend?: boolean;
    formatValue?: (n: number) => string;
    disableAnimation?: boolean;
    "aria-label"?: string;
}
export declare const Gauge: import("react").ForwardRefExoticComponent<GaugeProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=Gauge.d.ts.map