import React from 'react';
import { SliderProps as SliderBaseProps } from 'react-aria-components';
import './Slider.scss';
import { ColorRange } from '../../core/types';
export type SliderProps<T extends number | number[]> = SliderBaseProps<T> & {
    value?: T;
    onChange?: (value: T) => void;
    onChangeEnd?: (value: T) => void;
    min?: number;
    max?: number;
    step?: number;
    colorRange?: ColorRange;
    showMarks?: boolean;
    showLabel?: boolean;
    labelDisplayMode?: 'percentage' | 'value';
    isInverse?: boolean;
    className?: string;
    style?: React.CSSProperties;
    disabled?: boolean;
    ariaLabel?: string;
};
export declare enum SliderType {
    SingleThumb = "SingleThumb",
    DualThumb = "DualThumb",
    MultiThumb = "MultiThumb"
}
/**
 * Slider component. Auto checks if the slider is a single or multi thumb slider
 * @param props
 * @param {number | number[]} props.value - The value of the slider. If it's an array, it's a multi thumb slider
 * @param {(value: number | number[]) => void} props.onChange - [optional] The callback function to handle the value change
 * @param {ColorRange} props.colorRange - [optional] The color range of the slider. The value is the value threshold ( ideally between 0 and 100), the color is the color.
 * @param {number} props.min - [optional] The minimum value of the slider
 * @param {number} props.max - [optional] The maximum value of the slider
 * @param {number} props.step - [optional] The step value of the slider
 * @param {boolean} props.showMarks - [optional] Show the marks on the slider
 * @param {boolean} props.showLabel - [optional] Show the label on the slider
 * @param {'percentage' | 'value'} props.labelDisplayMode - [optional] The display mode of the label. `percentage` or `value` Default is 'percentage'
 * @param {boolean} props.isInverse - [optional] Inverse the slider
 * @param {boolean} props.disabled - [optional] Disable the slider
 * @param {string} props.className - [optional] The class name of the slider
 * @param {string} props.ariaLabel - [optional] The aria label of the slider
 * @param {(value: number | number[]) => void} props.onChangeEnd - [optional] The callback function to handle the value change when the slider is released
 * @returns
 */
export declare const Slider: <T extends number | number[]>(props: SliderProps<T>) => import("react/jsx-runtime").JSX.Element;
export default Slider;
