import { Component, CSSProperties, FormEventHandler, ReactElement } from 'react';
import BigNumber from 'bignumber.js';
import { AbstractInputProps } from '../input/Input';
import { Size } from '../_util/enum';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
export declare type OmitAttrs = 'defaultValue' | 'onChange' | 'size' | 'value' | 'min' | 'max' | 'step';
export interface InputNumberProps extends Omit<AbstractInputProps<HTMLInputElement>, OmitAttrs> {
    prefixCls?: string;
    min?: BigNumber.Value;
    max?: BigNumber.Value;
    value?: BigNumber.Value;
    step?: BigNumber.Value;
    defaultValue?: BigNumber.Value;
    tabIndex?: number;
    onKeyDown?: FormEventHandler<any>;
    onChange?: (value: BigNumber.Value | undefined) => void;
    disabled?: boolean;
    size?: Size;
    formatter?: (value: BigNumber.Value | undefined) => string;
    parser?: (displayValue: string | undefined) => BigNumber.Value;
    placeholder?: string;
    style?: CSSProperties;
    className?: string;
    name?: string;
    id?: string;
    precision?: number;
    allowThousandth?: boolean;
    renderInput?: <T extends object>(props: T) => ReactElement<T>;
    renderHandler?: (handler: ReactElement) => ReactElement;
    upHandler?: ReactElement;
    downHandler?: ReactElement;
}
export declare function formatNumber(value: BigNumber.Value | undefined): string;
export declare function parseNumber(value: string): string;
export default class InputNumber extends Component<InputNumberProps, any> {
    static displayName: string;
    static get contextType(): typeof ConfigContext;
    static defaultProps: {
        step: number;
    };
    context: ConfigContextValue;
    private inputNumberRef;
    numberFormatter: (value: string | number | BigNumber.Instance | undefined) => any;
    numberParser: (value: string) => BigNumber.Value;
    render(): JSX.Element;
    focus(): void;
    blur(): void;
}
