export default NumberInput;
declare class NumberInput extends React.Component<any, any, any> {
    static propTypes: {
        /** 值，受控 */
        value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /** 默认值，非受控 */
        defaultValue: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /** @ignore */
        focusOnUpDown: PropTypes.Requireable<boolean>;
        /** @ignore */
        autoFocus: PropTypes.Requireable<boolean>;
        /** 修改回调 */
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        /**
         * 有效的修改回调，使用按钮改变值或者输入、回车后失焦时触发，可防止监听到无效的回调
         * @param value - 当前的值，必为有效数字
         */
        onNumberChange: PropTypes.Requireable<(...args: any[]) => any>;
        /** @ignore */
        onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
        /** @ignore */
        onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
        /** @ignore */
        onEnter: PropTypes.Requireable<(...args: any[]) => any>;
        /** 禁用 */
        disabled: PropTypes.Requireable<boolean>;
        /** @ignore */
        onFocus: PropTypes.Requireable<(...args: any[]) => any>;
        /** @ignore */
        onBlur: PropTypes.Requireable<(...args: any[]) => any>;
        /** 只读 */
        readOnly: PropTypes.Requireable<boolean>;
        /** 最大值 */
        max: PropTypes.Requireable<number>;
        /** 最小值 */
        min: PropTypes.Requireable<number>;
        /** 按钮每次变动大小 */
        step: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /** 增加按钮点击增加的大小，会覆盖 step */
        upStep: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /** 减少按钮点击减少的大小，会覆盖 step */
        downStep: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        /** 自定义'+'按钮 */
        upHandler: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /** 自定义'-'按钮 */
        downHandler: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /** 定义数值展示格式化 */
        formatter: PropTypes.Requireable<(...args: any[]) => any>;
        /** 定义输入内容过滤 */
        parser: PropTypes.Requireable<(...args: any[]) => any>;
        /** 精度，小数点位数 */
        precision: PropTypes.Requireable<number>;
        /** @ignore */
        className: PropTypes.Requireable<string>;
        /** @ignore */
        style: PropTypes.Requireable<object>;
        /** 样式风格 */
        styleType: PropTypes.Requireable<string>;
        /** 尺寸 */
        size: PropTypes.Requireable<string>;
        /** 自定义后缀 */
        suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        /** input框自定义样式 */
        inputStyle: PropTypes.Requireable<object>;
        /** 计算合法值 */
        computeValidNumber: PropTypes.Requireable<(...args: any[]) => any>;
        /** 是否隐藏操作按钮 */
        hideHandler: PropTypes.Requireable<boolean>;
        /**
         * 输入提示，hover 和输入焦点时显示，可直接传入 tooltip 内容，或传入 tooltip 的 props，props 参考 tooltip 组件文档
         * 注意，如果使用自定义 props 中的 visible 和 onVisibleChange 则需要自己去控制 tooltip 的显示隐藏
         */
        tooltip: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
    };
    static defaultProps: {
        focusOnUpDown: boolean;
        min: number;
        step: number;
        onChange: typeof noop;
        onNumberChange: typeof noop;
        onKeyDown: typeof noop;
        onEnter: typeof noop;
        onFocus: typeof noop;
        onBlur: typeof noop;
        parser: typeof defaultParser;
        styleType: string;
        size: string;
        computeValidNumber: (v: any) => any;
    };
    constructor(props: any);
    state: {
        inputValue: any;
        value: any;
        focused: any;
        tooltipVisible: boolean;
    };
    input: React.RefObject<any>;
    componentDidMount(): void;
    componentWillReceiveProps(nextProps: any): void;
    componentWillUpdate(): void;
    start: any;
    end: any;
    componentDidUpdate(): void;
    pressingUpOrDown: boolean | undefined;
    componentWillUnmount(): void;
    onKeyDown: (e: any, ...args: any[]) => void;
    onKeyUp: (e: any, ...args: any[]) => void;
    onChange: (e: any) => void;
    inputting: boolean | undefined;
    onFocus: (...args: any[]) => void;
    onBlur: (e: any, ...args: any[]) => void;
    onEnter: (e: any, ...args: any[]) => void;
    getCurrentValidValue(value: any): any;
    getRatio(e: any): number;
    getValueFromEvent(e: any): any;
    getValidValue(value: any, min?: any, max?: any): any;
    setValue(v: any, callback: any): void;
    getPrecision(value: any): any;
    getMaxPrecision(currentValue: any, ratio?: number): any;
    getPrecisionFactor(currentValue: any, ratio?: number): number;
    focus(): void;
    blur(): void;
    formatWrapper(num: any): any;
    toPrecisionAsStep(num: any): any;
    isNotCompleteNumber(num: any): any;
    toNumber(num: any): any;
    toNumberWhenUserInput(num: any): any;
    upStep(val: any, rat: any): any;
    downStep(val: any, rat: any): any;
    step(type: any, e: any, ratio: number | undefined, recursive: any): void;
    autoStepTimer: NodeJS.Timeout | undefined;
    stop: () => void;
    down: (e: any, ratio: any, recursive: any) => void;
    up: (e: any, ratio: any, recursive: any) => void;
    renderHandler: () => React.JSX.Element | null;
    onTooltipVisibleChange: (visible: any) => void;
    renderInput: () => React.JSX.Element;
    render(): React.JSX.Element;
}
declare namespace NumberInput {
    export { StyleType };
    export { Size };
}
import React from "react";
import PropTypes from "prop-types";
declare function noop(): void;
declare function defaultParser(input: any): any;
declare const StyleType: string[];
declare const Size: string[];
