import React, { ReactNode, CSSProperties, HTMLAttributes } from 'react';
export declare type SlideEvent = MouseEvent | TouchEvent;
export declare type ReactMouseEvent = React.MouseEvent;
export declare type ReactTouchEvent = React.TouchEvent;
export declare type ReactSlideEvent = ReactMouseEvent | ReactTouchEvent;
export declare type Mark = ReactNode | {
    style?: CSSProperties;
    label: ReactNode;
};
export interface Marks {
    [point: number]: Mark;
}
export interface InputSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onDragEnd'> {
    className?: string;
    /**
     * If `true`, the slider will be vertical.
     */
    vertical?: boolean;
    size?: number;
    value: number;
    min?: number;
    max?: number;
    step?: number;
    /**
     * If `true`, it will render the slider with dots.
     */
    dots?: boolean;
    marks?: Marks;
    /**
     * Will be triggered when `onTouchStart` or `onMouseDown` is triggered.
     */
    onBeforeChange?: (value: number) => void;
    /**
     * Will be triggerd when `onMouseMove` or `onTouchMove` is trigged.
     */
    onChange?: (value: number) => void;
    /**
     * Will be triggered when `onTouchEnd` or `onMouseUp` is triggered.
     */
    onAfterChange?: (value: number) => void;
    /**
     * Only trigged when value changed by clicked on rail or marks.
     */
    onClickChange?: (value: number) => void;
}
