import { ReactNode } from 'react';
import { BaseProps } from '../../base/props';
export type RangeValue = number | number[];
export type RangeMark = {
    value: number;
    label?: ReactNode;
};
export interface BaseRange extends BaseProps {
    /**
    * 当前进度百分比，受控
    */
    value: RangeValue
    /**
    * 默认进度百分比，非受控
    */
    defaultValue: RangeValue
    /**
    * 是否开启双滑块模式
    */
    range: boolean
    /**
    * 是否禁用滑块 boolean
    */
    disabled: boolean
    /**
    * 最小值
    */
    min: number
    /**
    * 最大值
    */
    max: number
    /**
    * 步长
    */
    step: number
    /**
    * 最小值描述，传 null 表示隐藏
    */
    minDescription: ReactNode
    /**
    * 最大值描述，传 null 表示隐藏
    */
    maxDescription: ReactNode
    /**
    * 自定义滑动按钮
    */
    button: ReactNode
    /**
    * 是否竖向展示
    */
    vertical: boolean
    /**
    * 刻度标示
    */
    marks: Record<string, ReactNode> | RangeMark[]
    /**
    * 当前值描述，传 null 表示隐藏
    */
    currentDescription: ((value: RangeValue) => ReactNode) | null
    /**
    * 进度实时变化，通常在受控方式中与 value 一起使用
    */
    onChange: (value: RangeValue) => void
    /**
    * 开始拖动时触发
    */
    onStart: () => void
    /**
    * 结束拖动时触发
    */
    onEnd: (value: RangeValue) => void
}
