import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export type SliderSize = "sm" | "md" | "lg";
export type SliderVariant = "primary" | "success" | "warning" | "error";
export interface SliderMark {
    value: number;
    label?: ReactNode;
}
type InputPropsBase = Omit<ComponentPropsWithoutRef<"input">, "type" | "value" | "onChange" | "size" | "min" | "max" | "step" | "prefix">;
export interface SliderProps extends InputPropsBase {
    label?: ReactNode;
    value: number;
    onChange?: (value: number) => void;
    min?: number;
    max?: number;
    step?: number;
    /** Format the rendered + announced value. Used for both the visible
     *  value pill AND `aria-valuetext`, so AT users hear "$50" instead
     *  of just "50". */
    formatValue?: (value: number) => ReactNode;
    showValue?: boolean;
    size?: SliderSize;
    disabled?: boolean;
    /** Visual tone — drives the fill + thumb-border colour. */
    variant?: SliderVariant;
    /** Helper text rendered below the track. Suppressed when `error` is set. */
    helperText?: ReactNode;
    /** Error message — renders with `role="alert"`, tints the track, sets
     *  `aria-invalid`. */
    error?: ReactNode;
    /** Optional tick marks under the track for discrete sliders. Each
     *  mark renders a small tick at its `value`; a label is shown when
     *  provided. */
    marks?: SliderMark[];
}
export declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLInputElement>>;
export {};
//# sourceMappingURL=Slider.d.ts.map