/**
 * @author Hanz
 * @date 2021/11/5 下午4:05
 * @description
 */
import React from "react";
export type TooltipPlacement = 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
interface SliderRange {
    draggableTrack?: boolean;
}
export interface SliderMarks {
    [key: number]: React.ReactNode | {
        style: React.CSSProperties;
        label: React.ReactNode;
    };
}
export interface HandleGeneratorInfo {
    value?: number;
    dragging?: boolean;
    index: number;
}
export type HandleGeneratorFn = (config: {
    tooltipPrefixCls?: string;
    info: HandleGeneratorInfo;
}) => React.ReactElement;
export interface SliderBaseProps {
    /** 反向坐标 */
    reverse?: boolean;
    /** 最小值 */
    min?: number;
    /** 最大值 */
    max?: number;
    /** 步长，取值必须大于 0，并且可被 (max - min) 整除，
     * 当 marks 不为空对象时，
     * 可以设置 step 为 null，
     * 此时 Slider 的可选值仅有 marks 标出来的部分
     */
    step?: null | number;
    /** 刻度标记，key 的类型必须为 number
     * 且取值在闭区间 [min, max] 内，每个标签可以单独设置样式
     */
    marks?: SliderMarks;
    /** 是否只能拖拽到刻度上 */
    dots?: boolean;
    /** marks 不为空对象时有效，值为 true 时表示值为包含关系，false 表示并列 */
    included?: boolean;
    /** 禁用状态 */
    disabled?: boolean;
    /** 垂直方向 */
    vertical?: boolean;
    /** 提示格式化回调 */
    tipFormatter?: null | ((value?: number) => React.ReactNode);
    /** 类名 */
    className?: string;
    /** style */
    style?: React.CSSProperties;
    /** tooltip 是否始终显示 */
    tooltipVisible?: boolean;
    /** tooltip 显示位置 */
    tooltipPlacement?: TooltipPlacement;
    /** tooltip 挂载节点 */
    getTooltipPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
    /** 是否获得焦点 */
    autoFocus?: boolean;
}
export interface SliderSingleProps extends SliderBaseProps {
    /** 非范围slider */
    range?: false;
    /** 当前值 */
    value?: number;
    /** 默认值 */
    defaultValue?: number;
    /** 值变化时回调 */
    onChange?: (value: number) => void;
    /** 值变化后回调 */
    onAfterChange?: (value: number) => void;
    /** handle 样式 */
    handleStyle?: React.CSSProperties;
    /** 轨道样式 */
    trackStyle?: React.CSSProperties;
}
export interface SliderRangeProps extends SliderBaseProps {
    /** 范围slider */
    range: true | SliderRange;
    /** 当前值 */
    value?: number[];
    /** 默认值 */
    defaultValue?: number[];
    /** 值变化时回调 */
    onChange?: (value: number[]) => void;
    /** 值变化后回调 */
    onAfterChange?: (value: number[]) => void;
    /** handle 样式 */
    handleStyle?: React.CSSProperties[];
    /** 轨道样式 */
    trackStyle?: React.CSSProperties[];
    /** 允许跨越 */
    allowCross?: boolean;
    /** 允许推动 */
    pushable?: boolean | number;
}
export {};
