import { CSSProperties, ExtractPropTypes, VNodeTypes, PropType, CreateComponentPublicInstanceWithMixins, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, ComponentOptionsBase, VNodeProps, AllowedComponentProps, ComponentCustomProps, Plugin } from 'vue';
import { FocusEventHandler } from '../_util/EventInterface';
import { CustomSlotsType, VueNode } from '../_util/type';
import { TooltipPlacement } from '../tooltip/Tooltip';
export type SliderValue = number | [number, number];
export interface SliderMarks {
    [key: number]: VueNode | {
        style: CSSProperties;
        label: any;
    };
}
interface HandleGeneratorInfo {
    value?: number;
    dragging?: boolean;
    index: number;
}
export interface SliderRange {
    draggableTrack?: boolean;
}
export type HandleGeneratorFn = (config: {
    tooltipPrefixCls?: string;
    prefixCls?: string;
    info: HandleGeneratorInfo;
}) => VNodeTypes;
type Value = [number, number] | number;
export declare const sliderProps: () => {
    id: StringConstructor;
    prefixCls: StringConstructor;
    tooltipPrefixCls: StringConstructor;
    range: {
        type: PropType<boolean | SliderRange>;
        default: boolean | SliderRange;
    };
    reverse: {
        type: BooleanConstructor;
        default: boolean;
    };
    min: NumberConstructor;
    max: NumberConstructor;
    step: {
        type: PropType<number | null>;
        default: number | null;
    };
    marks: {
        type: PropType<SliderMarks>;
        default: SliderMarks;
    };
    dots: {
        type: BooleanConstructor;
        default: boolean;
    };
    value: {
        type: PropType<Value>;
        default: Value;
    };
    defaultValue: {
        type: PropType<Value>;
        default: Value;
    };
    included: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    vertical: {
        type: BooleanConstructor;
        default: boolean;
    };
    tipFormatter: {
        type: PropType<((value?: number) => any) | null>;
        default: ((value?: number) => any) | null;
    };
    tooltipOpen: {
        type: BooleanConstructor;
        default: boolean;
    };
    /** @deprecated `tooltipVisible` is deprecated. Please use `tooltipOpen` instead. */
    tooltipVisible: {
        type: BooleanConstructor;
        default: boolean;
    };
    tooltipPlacement: {
        type: PropType<TooltipPlacement>;
        default: TooltipPlacement;
    };
    getTooltipPopupContainer: {
        type: PropType<(triggerNode: HTMLElement) => HTMLElement>;
        default: (triggerNode: HTMLElement) => HTMLElement;
    };
    autofocus: {
        type: BooleanConstructor;
        default: boolean;
    };
    handleStyle: {
        type: PropType<CSSProperties | CSSProperties[]>;
        default: CSSProperties | CSSProperties[];
    };
    trackStyle: {
        type: PropType<CSSProperties | CSSProperties[]>;
        default: CSSProperties | CSSProperties[];
    };
    onChange: {
        type: PropType<(value: Value) => void>;
        default: (value: Value) => void;
    };
    onAfterChange: {
        type: PropType<(value: Value) => void>;
        default: (value: Value) => void;
    };
    onFocus: {
        type: PropType<FocusEventHandler>;
        default: FocusEventHandler;
    };
    onBlur: {
        type: PropType<FocusEventHandler>;
        default: FocusEventHandler;
    };
    'onUpdate:value': {
        type: PropType<(value: Value) => void>;
        default: (value: Value) => void;
    };
};
export type SliderProps = Partial<ExtractPropTypes<ReturnType<typeof sliderProps>>>;
export interface Visibles {
    [index: number]: boolean;
}
declare const _default: {
    new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<ExtractPropTypes<{
        id: StringConstructor;
        prefixCls: StringConstructor;
        tooltipPrefixCls: StringConstructor;
        range: {
            type: PropType<boolean | SliderRange>;
            default: boolean | SliderRange;
        };
        reverse: {
            type: BooleanConstructor;
            default: boolean;
        };
        min: NumberConstructor;
        max: NumberConstructor;
        step: {
            type: PropType<number | null>;
            default: number | null;
        };
        marks: {
            type: PropType<SliderMarks>;
            default: SliderMarks;
        };
        dots: {
            type: BooleanConstructor;
            default: boolean;
        };
        value: {
            type: PropType<Value>;
            default: Value;
        };
        defaultValue: {
            type: PropType<Value>;
            default: Value;
        };
        included: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        vertical: {
            type: BooleanConstructor;
            default: boolean;
        };
        tipFormatter: {
            type: PropType<((value?: number) => any) | null>;
            default: ((value?: number) => any) | null;
        };
        tooltipOpen: {
            type: BooleanConstructor;
            default: boolean;
        };
        /** @deprecated `tooltipVisible` is deprecated. Please use `tooltipOpen` instead. */
        tooltipVisible: {
            type: BooleanConstructor;
            default: boolean;
        };
        tooltipPlacement: {
            type: PropType<TooltipPlacement>;
            default: TooltipPlacement;
        };
        getTooltipPopupContainer: {
            type: PropType<(triggerNode: HTMLElement) => HTMLElement>;
            default: (triggerNode: HTMLElement) => HTMLElement;
        };
        autofocus: {
            type: BooleanConstructor;
            default: boolean;
        };
        handleStyle: {
            type: PropType<CSSProperties | CSSProperties[]>;
            default: CSSProperties | CSSProperties[];
        };
        trackStyle: {
            type: PropType<CSSProperties | CSSProperties[]>;
            default: CSSProperties | CSSProperties[];
        };
        onChange: {
            type: PropType<(value: Value) => void>;
            default: (value: Value) => void;
        };
        onAfterChange: {
            type: PropType<(value: Value) => void>;
            default: (value: Value) => void;
        };
        onFocus: {
            type: PropType<FocusEventHandler>;
            default: FocusEventHandler;
        };
        onBlur: {
            type: PropType<FocusEventHandler>;
            default: FocusEventHandler;
        };
        'onUpdate:value': {
            type: PropType<(value: Value) => void>;
            default: (value: Value) => void;
        };
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        reverse: boolean;
        value: Value;
        vertical: boolean;
        range: boolean | SliderRange;
        disabled: boolean;
        onFocus: FocusEventHandler;
        onBlur: FocusEventHandler;
        onChange: (value: Value) => void;
        step: number | null;
        autofocus: boolean;
        defaultValue: Value;
        'onUpdate:value': (value: Value) => void;
        dots: boolean;
        included: boolean;
        marks: SliderMarks;
        trackStyle: CSSProperties | CSSProperties[];
        handleStyle: CSSProperties | CSSProperties[];
        onAfterChange: (value: Value) => void;
        tipFormatter: ((value?: number) => any) | null;
        tooltipOpen: boolean;
        tooltipVisible: boolean;
        tooltipPlacement: TooltipPlacement;
        getTooltipPopupContainer: (triggerNode: HTMLElement) => HTMLElement;
    }, true, {}, CustomSlotsType<{
        mark?: any;
        default?: any;
    }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<ExtractPropTypes<{
        id: StringConstructor;
        prefixCls: StringConstructor;
        tooltipPrefixCls: StringConstructor;
        range: {
            type: PropType<boolean | SliderRange>;
            default: boolean | SliderRange;
        };
        reverse: {
            type: BooleanConstructor;
            default: boolean;
        };
        min: NumberConstructor;
        max: NumberConstructor;
        step: {
            type: PropType<number | null>;
            default: number | null;
        };
        marks: {
            type: PropType<SliderMarks>;
            default: SliderMarks;
        };
        dots: {
            type: BooleanConstructor;
            default: boolean;
        };
        value: {
            type: PropType<Value>;
            default: Value;
        };
        defaultValue: {
            type: PropType<Value>;
            default: Value;
        };
        included: {
            type: BooleanConstructor;
            default: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        vertical: {
            type: BooleanConstructor;
            default: boolean;
        };
        tipFormatter: {
            type: PropType<((value?: number) => any) | null>;
            default: ((value?: number) => any) | null;
        };
        tooltipOpen: {
            type: BooleanConstructor;
            default: boolean;
        };
        /** @deprecated `tooltipVisible` is deprecated. Please use `tooltipOpen` instead. */
        tooltipVisible: {
            type: BooleanConstructor;
            default: boolean;
        };
        tooltipPlacement: {
            type: PropType<TooltipPlacement>;
            default: TooltipPlacement;
        };
        getTooltipPopupContainer: {
            type: PropType<(triggerNode: HTMLElement) => HTMLElement>;
            default: (triggerNode: HTMLElement) => HTMLElement;
        };
        autofocus: {
            type: BooleanConstructor;
            default: boolean;
        };
        handleStyle: {
            type: PropType<CSSProperties | CSSProperties[]>;
            default: CSSProperties | CSSProperties[];
        };
        trackStyle: {
            type: PropType<CSSProperties | CSSProperties[]>;
            default: CSSProperties | CSSProperties[];
        };
        onChange: {
            type: PropType<(value: Value) => void>;
            default: (value: Value) => void;
        };
        onAfterChange: {
            type: PropType<(value: Value) => void>;
            default: (value: Value) => void;
        };
        onFocus: {
            type: PropType<FocusEventHandler>;
            default: FocusEventHandler;
        };
        onBlur: {
            type: PropType<FocusEventHandler>;
            default: FocusEventHandler;
        };
        'onUpdate:value': {
            type: PropType<(value: Value) => void>;
            default: (value: Value) => void;
        };
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        reverse: boolean;
        value: Value;
        vertical: boolean;
        range: boolean | SliderRange;
        disabled: boolean;
        onFocus: FocusEventHandler;
        onBlur: FocusEventHandler;
        onChange: (value: Value) => void;
        step: number | null;
        autofocus: boolean;
        defaultValue: Value;
        'onUpdate:value': (value: Value) => void;
        dots: boolean;
        included: boolean;
        marks: SliderMarks;
        trackStyle: CSSProperties | CSSProperties[];
        handleStyle: CSSProperties | CSSProperties[];
        onAfterChange: (value: Value) => void;
        tipFormatter: ((value?: number) => any) | null;
        tooltipOpen: boolean;
        tooltipVisible: boolean;
        tooltipPlacement: TooltipPlacement;
        getTooltipPopupContainer: (triggerNode: HTMLElement) => HTMLElement;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & ComponentOptionsBase<Readonly<ExtractPropTypes<{
    id: StringConstructor;
    prefixCls: StringConstructor;
    tooltipPrefixCls: StringConstructor;
    range: {
        type: PropType<boolean | SliderRange>;
        default: boolean | SliderRange;
    };
    reverse: {
        type: BooleanConstructor;
        default: boolean;
    };
    min: NumberConstructor;
    max: NumberConstructor;
    step: {
        type: PropType<number | null>;
        default: number | null;
    };
    marks: {
        type: PropType<SliderMarks>;
        default: SliderMarks;
    };
    dots: {
        type: BooleanConstructor;
        default: boolean;
    };
    value: {
        type: PropType<Value>;
        default: Value;
    };
    defaultValue: {
        type: PropType<Value>;
        default: Value;
    };
    included: {
        type: BooleanConstructor;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    vertical: {
        type: BooleanConstructor;
        default: boolean;
    };
    tipFormatter: {
        type: PropType<((value?: number) => any) | null>;
        default: ((value?: number) => any) | null;
    };
    tooltipOpen: {
        type: BooleanConstructor;
        default: boolean;
    };
    /** @deprecated `tooltipVisible` is deprecated. Please use `tooltipOpen` instead. */
    tooltipVisible: {
        type: BooleanConstructor;
        default: boolean;
    };
    tooltipPlacement: {
        type: PropType<TooltipPlacement>;
        default: TooltipPlacement;
    };
    getTooltipPopupContainer: {
        type: PropType<(triggerNode: HTMLElement) => HTMLElement>;
        default: (triggerNode: HTMLElement) => HTMLElement;
    };
    autofocus: {
        type: BooleanConstructor;
        default: boolean;
    };
    handleStyle: {
        type: PropType<CSSProperties | CSSProperties[]>;
        default: CSSProperties | CSSProperties[];
    };
    trackStyle: {
        type: PropType<CSSProperties | CSSProperties[]>;
        default: CSSProperties | CSSProperties[];
    };
    onChange: {
        type: PropType<(value: Value) => void>;
        default: (value: Value) => void;
    };
    onAfterChange: {
        type: PropType<(value: Value) => void>;
        default: (value: Value) => void;
    };
    onFocus: {
        type: PropType<FocusEventHandler>;
        default: FocusEventHandler;
    };
    onBlur: {
        type: PropType<FocusEventHandler>;
        default: FocusEventHandler;
    };
    'onUpdate:value': {
        type: PropType<(value: Value) => void>;
        default: (value: Value) => void;
    };
}>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
    reverse: boolean;
    value: Value;
    vertical: boolean;
    range: boolean | SliderRange;
    disabled: boolean;
    onFocus: FocusEventHandler;
    onBlur: FocusEventHandler;
    onChange: (value: Value) => void;
    step: number | null;
    autofocus: boolean;
    defaultValue: Value;
    'onUpdate:value': (value: Value) => void;
    dots: boolean;
    included: boolean;
    marks: SliderMarks;
    trackStyle: CSSProperties | CSSProperties[];
    handleStyle: CSSProperties | CSSProperties[];
    onAfterChange: (value: Value) => void;
    tipFormatter: ((value?: number) => any) | null;
    tooltipOpen: boolean;
    tooltipVisible: boolean;
    tooltipPlacement: TooltipPlacement;
    getTooltipPopupContainer: (triggerNode: HTMLElement) => HTMLElement;
}, {}, string, CustomSlotsType<{
    mark?: any;
    default?: any;
}>, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & Plugin;
export default _default;
