import React from 'react';
import { StandardProps } from '../@types/common';
import { GetInputableProps } from '../Form/Props';
export interface ContainerProps<Value extends number | number[]> extends StandardProps {
    /**
     * @en Form field, used with Form
     * @cn 表单字段, 配合 Form 使用
     */
    name?: string;
    /**
     * @en Automatically hides the current value and scale
     * @cn 是否自动隐藏当前值和刻度
     * @default false
     */
    autoHide?: boolean;
    /**
     * @en Format displayed scale. When it is false, the scale is not displayed.
     * @cn 格式化显示刻度，为 false 时，不显示刻度
     * @default v => v
     */
    formatScale?: ((value: number, index?: number) => string | number) | false;
    /**
     * @en Format displayed current value. When it is false, the current value is not displayed.
     * @cn 格式化显示当前值，为 false 时，不显示当前值
     * @default v => v
     */
    formatValue?: ((value: number) => string) | false;
    /**
     * @en height. Only effect when vertical is true
     * @cn 高度，仅在 vertical 为 true 情况下有效
     * @default 200
     */
    height?: number;
    /**
     * @en The callback function when the value is changing.
     * @cn 值改变时回调函数
     */
    onChange: (value: Value) => void;
    /**
     * @en Value range. An array whose length is greater than 2.
     * @cn 取值范围，长度 >= 2 的数组
     * @default [0, 100]
     */
    scale?: number[];
    /**
     * @en Step size. Must be greater than or equal to 0; When it is 0, only the value specified by scale can be selected.
     * @cn 步长，必须大于等于0；为0时，只能选取 scale 指定的值
     * @default 1
     */
    step?: number;
    /**
     * @en current value
     * @cn 当前值
     * @override number | number[]
     */
    value?: Value;
    /**
     * @en default value
     * @cn 默认值
     */
    defaultValue?: Value;
    /**
     * @en Whether to be vertical
     * @cn 是否垂直
     * @default false
     */
    vertical?: boolean;
    /**
     * @en Whether to display double slider
     * @cn 是否显示双滑块
     * @default false
     */
    range?: boolean;
    /**
     * @en Disable component
     * @cn 是否禁用组件
     * @default false
     */
    disabled?: boolean;
    /**
     * @en Drag over the maximum event
     * @cn 拖动超过最大值事件
     */
    onIncrease?: () => void;
}
export interface BaseSliderProps<Value extends number | number[]> extends Pick<ContainerProps<Value>, 'disabled' | 'autoHide' | 'formatValue' | 'vertical' | 'onIncrease' | 'step'> {
    index: 0 | 1;
    min?: number;
    max?: number;
    onChange: (index: 0 | 1, val: number) => void;
    onDrag?: any;
    scale: number[];
    value: number;
}
export interface IndicatorProps {
    disabled?: boolean;
    onDragStart: () => void;
}
export declare type SliderPropsWidthInputable<Value extends number | number[]> = GetInputableProps<ContainerProps<Value>, Value>;
/**
 * @title Slider
 */
export declare type SliderProps<Value extends number | number[]> = Omit<SliderPropsWidthInputable<Value>, 'filterSameChange'>;
export declare class SliderClass<Value extends number | number[]> extends React.Component<SliderProps<Value>, {}> {
    render(): JSX.Element;
}
export declare type SliderType = typeof SliderClass;
