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 { inputRef: React.RefObject; 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) => 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;