import { ChangeEvent, HTMLAttributes, ReactNode } from 'react'; import { type TouchEvent } from '../../../components/Service/Touch/Touch'; export interface SliderBaseProps extends Omit, 'value' | 'defaultValue' | 'onChange'> { /** Minimum allowed value. Defaults to 0. */ min?: number; /** Maximum allowed value. Defaults to 100. */ max?: number; /** Step value for each movement. Defaults to 1. */ step?: number; /** Indicates whether the slider is disabled. */ disabled?: boolean; /** Content to be rendered before the slider. */ before?: ReactNode; /** Content to be rendered after the slider. */ after?: ReactNode; /** Provides a way to generate dynamic aria-label based on the slider's thumb index. */ getAriaLabel?: (index: number) => string; /** Provides a way to customize the aria-valuetext for more flexible text representation based on the slider's value. */ getAriaValueText?: (value: number, index: number) => string; } export interface SliderNoMultipleProps extends SliderBaseProps { /** Enables single-thumb mode. */ multiple?: false; /** The current value of the slider. */ value?: number; /** Default value of the slider. */ defaultValue?: number; /** Callback for when the slider value changes. */ onChange?: (value: number, event: TouchEvent | ChangeEvent) => void; } export interface SliderMultipleProps extends SliderBaseProps { /** Enables multiple-thumb mode for range selection. */ multiple: true; /** The current value of the slider, expecting a tuple for start and end values. */ value?: [number, number]; /** Default value of the slider, expecting a tuple for start and end values. */ defaultValue?: [number, number]; /** Callback for when the slider value changes. */ onChange?: (value: [number, number], event: TouchEvent | ChangeEvent) => void; } export type SliderProps = SliderNoMultipleProps | SliderMultipleProps; /** * Renders a slider input for selecting a value or range from a predefined interval. Supports single or multiple thumbs for range selection. * It leverages custom hooks for logic and state management and provides customization options for appearance and functionality. */ export declare const Slider: ({ className, disabled, before, after, ...restProps }: SliderProps) => JSX.Element; //# sourceMappingURL=Slider.d.ts.map