import * as react_jsx_runtime from 'react/jsx-runtime';
import { Slider as Slider$1 } from '@base-ui/react/slider';

declare function valueToPercent(value: number, min: number, max: number): number;
/** Build sorted unique tick values from min→max using `markStep` spacing (always includes min and max). */
declare function buildMarkValues(min: number, max: number, markStep: number): number[];
type SliderRootSingleProps = Slider$1.Root.Props<number>;
type SliderMarksInput = true | readonly number[] | {
    values: readonly number[];
    showTicks?: boolean;
};
interface SliderProps extends Omit<SliderRootSingleProps, "children" | "thumbAlignment"> {
    className?: string;
    /** `true`: auto ticks from `markStep` or a sensible default. Array: explicit values. Object: explicit values + tick visibility. Omit for no scale. */
    marks?: SliderMarksInput;
    /** Space between numeric labels when `marks={true}`. */
    markStep?: number;
    formatMark?: (value: number) => string;
    size?: "sm" | "md";
    /** Optional field label (Sort UI input pattern). */
    label?: string;
    /** Caption under the control. */
    helperText?: string;
    /** Show small tick lines above numeric labels. Default true when marks are shown. */
    showMarkTicks?: boolean;
    /** Merged onto each thumb; use for playground / brand-specific thumb chrome. */
    thumbClassName?: string;
}
/** Single-thumb slider with optional numeric scale (marks + labels below), sizes, and field chrome. */
declare function Slider({ className, disabled, marks: marksProp, markStep, formatMark, size, label, helperText, showMarkTicks, thumbClassName, min, max, step, ...props }: SliderProps): react_jsx_runtime.JSX.Element;
type SliderRootRangeProps = Slider$1.Root.Props<readonly [number, number]>;
interface RangeSliderProps extends Omit<SliderRootRangeProps, "children" | "thumbAlignment"> {
    className?: string;
    marks?: SliderMarksInput;
    markStep?: number;
    formatMark?: (value: number) => string;
    size?: "sm" | "md";
    label?: string;
    helperText?: string;
    showMarkTicks?: boolean;
    /** Merged onto each thumb; use for playground / brand-specific thumb chrome. */
    thumbClassName?: string;
}
/** Range slider with two thumbs; supports the same marks / labels / sizes as `Slider`. */
declare function RangeSlider({ className, disabled, marks: marksProp, markStep, formatMark, size, label, helperText, showMarkTicks, thumbClassName, min, max, step, ...props }: RangeSliderProps): react_jsx_runtime.JSX.Element;

export { RangeSlider, type RangeSliderProps, Slider, type SliderMarksInput, type SliderProps, buildMarkValues, valueToPercent };
