import React from 'react';
import { SliderProps, CustomMode } from 'react-compound-slider';
import { RangeSliderValueFormatter } from '.';
type SliderOmitType = 'children' | 'disabled' | 'reversed' | 'vertical' | 'domain' | 'values' | 'mode' | 'step';
type SliderModeType = 1 | 2 | 3 | CustomMode;
export interface RangeSliderProps extends Omit<SliderProps, SliderOmitType> {
    /**
     * Two element array of numbers providing the min and max values for the slider [min, max] e.g. [0, 100].
     * It does not matter if the slider is reversed on the screen, domain is always [min, max] with min < max.
     */
    domain: readonly [number, number];
    /**
     * An array of numbers. You can supply one for a value slider, two for a range slider.
     * The values should correspond to valid step values in the domain.
     * The numbers will be forced into the domain if they are two small or large.
     */
    values: readonly [number] | readonly [number, number];
    /**
     * The step value for the slider.
     */
    step?: number;
    /**
     * The interaction mode. Value of 1 will allow handles to cross each other.
     * Value of 2 will keep the sliders from crossing and separated by a step.
     * Value of 3 will make the handles pushable and keep them a step apart.
     * You can also supply a function that will be passed the current values and the incoming update. Your function should return what the state should be set as.
     */
    mode?: SliderModeType;
    /**
     * Toggles whether or not to display labels below the slider.
     */
    hasLabels?: boolean;
    /**
     * Toggles whether or not to display value markers along the slider.
     */
    hasMarkers?: boolean;
    /**
     * Toggles whether to display colored tracks to the left of the handle.
     */
    tracksLeft?: boolean;
    /**
     * Toggles whether to display colored tracks to the right of the handle.
     */
    tracksRight?: boolean;
    /**
     * The number of Tickts to display along the slider track.
     */
    tickCount?: number;
    /**
     * Optional JSX icon element to display to the left of the component.
     */
    IconLeft?: React.ElementType;
    /**
     * Optional JSX icon element to display to the right of the component.
     */
    IconRight?: React.ElementType;
    /**
     * Toggles whether the component is disabled or not (preventing user interaction).
     */
    isDisabled?: boolean;
    /**
     * Toggles whether to reverse the scale of the slider.
     */
    isReversed?: boolean;
    /**
     * Optional numeric array of thresholds to display on the slider bar (up to 2).
     */
    thresholds?: number[];
    /**
     * Toggles whether to display unit values alongside the draggable handles.
     */
    displayUnit?: string;
    /**
     * Optional custom value formatter function.
     */
    formatValue?: RangeSliderValueFormatter;
}
export declare const RangeSlider: React.FC<RangeSliderProps>;
export {};
//# sourceMappingURL=Slider.d.ts.map