import * as React from "react";
import type { MathFormat } from "@khanacademy/perseus-core";
/**
 * An input box that accepts only numeric strings
 *
 * Calls `onChange(value, format)` for valid numbers.
 *
 * Reverts to the current value `onBlur` or on [ENTER],
 *   but maintains the format (i.e. 3/2, 1 1/2, 150%)
 *
 * Accepts empty input and sends it to `onChange` as `null` if no numeric
 * placeholder is set.
 *
 * If given a `checkValidity` function, will turn the background/outline red
 * when invalid.
 *
 * If `useArrowKeys` is set to `true`, up/down arrows will increment/decrement
 * integers.
 *
 * Optionally takes a `size` (`"mini"`, `"small"`,` `"normal"`)
 */
declare class NumberInput extends React.Component<any, any> {
    inputRef: React.RefObject<HTMLInputElement>;
    static propTypes: {
        value: any;
        format: any;
        placeholder: any;
        onChange: any;
        onFormatChange: any;
        checkValidity: any;
        size: any;
        label: any;
        allowPiTruncation: any;
    };
    static defaultProps: any;
    state: any;
    componentDidMount(): void;
    componentDidUpdate(prevProps: any): void;
    _getInput: () => HTMLInputElement;
    getValue: () => any;
    getStringValue: () => string;
    parseInputValue: (arg1: any) => any;
    focus: () => void;
    blur: () => void;
    setSelectionRange: (arg1: number, arg2: number) => void;
    getSelectionStart: () => number | null;
    getSelectionEnd: () => number | null;
    _checkValidity: (arg1: any) => boolean;
    _handleChange: (arg1: React.ChangeEvent<HTMLInputElement>) => void;
    _handleFocus: () => void;
    _handleBlur: (e?: React.FocusEvent | React.KeyboardEvent) => void;
    _onKeyDown: (arg1: React.KeyboardEvent) => void;
    _setValue: (arg1: number, arg2: MathFormat) => void;
    render(): React.ReactNode;
}
export default NumberInput;
