/**
 * A range input for selecting numeric values by dragging a thumb along a track.
 * Supports single-thumb sliders via `[value]` and multi-thumb sliders via `[min, max]`.
 * @category Form Inputs
 * @useCases volume control, price range, numeric input, filter range
 * @keywords slider, range, input, thumb, track, numeric
 * @related UiInput
 */
export interface UiSliderProps {
    /**
     * The controlled value of the slider.
     * Use `v-model` / `v-model:modelValue` for controlled mode.
     */
    modelValue?: number[];
    /**
     * The value of the slider when initially rendered (uncontrolled).
     * @default [0]
     */
    defaultValue?: number[];
    /**
     * When `true`, prevents the user from interacting with the slider.
     * @default false
     */
    disabled?: boolean;
    /**
     * The orientation of the slider.
     * @default 'horizontal'
     */
    orientation?: 'horizontal' | 'vertical';
    /**
     * The reading direction.
     * @default 'ltr'
     */
    dir?: 'ltr' | 'rtl';
    /**
     * Whether the slider is visually inverted.
     * @default false
     */
    inverted?: boolean;
    /**
     * The minimum value for the range.
     * @default 0
     */
    min?: number;
    /**
     * The maximum value for the range.
     * @default 100
     */
    max?: number;
    /**
     * The stepping interval.
     * @default 1
     */
    step?: number;
    /**
     * The minimum permitted steps between multiple thumbs.
     * @default 0
     */
    minStepsBetweenThumbs?: number;
    /**
     * Slider thumb alignment.
     * - `contain`: thumbs are contained within the track bounds.
     * - `overflow`: thumbs can overflow the track bounds.
     * @default 'contain'
     */
    thumbAlignment?: 'contain' | 'overflow';
    /**
     * Optional form field name (only relevant when used inside a form).
     */
    name?: string;
    /**
     * Whether the form field is required.
     * @default false
     */
    required?: boolean;
}
export interface UiSliderEmits {
    /**
     * Emitted when the slider value changes.
     */
    (e: 'update:modelValue', value: number[]): void;
    /**
     * Emitted when the value changes at the end of an interaction (commit).
     */
    (e: 'valueCommit', value: number[]): void;
}
