import { AbstractPureComponent, type HTMLInputProps, Position } from "@blueprintjs/core";
import type { InputSharedProps } from "@blueprintjs/core/src/components/forms/inputSharedProps";
export interface NumericInputProps extends InputSharedProps {
allowNumericCharactersOnly?: boolean;
asyncControl?: boolean;
buttonPosition?: typeof Position.LEFT | typeof Position.RIGHT | "none";
clampValueOnBlur?: boolean;
defaultValue?: number | string;
large?: boolean;
locale?: string;
majorStepSize?: number | null;
max?: number;
min?: number;
minorStepSize?: number | null;
selectAllOnFocus?: boolean;
selectAllOnIncrement?: boolean;
small?: boolean;
stepSize?: number;
value?: number | string;
onButtonClick?(valueAsNumber: number, valueAsString: string): void;
onValueChange?(valueAsNumber: number, valueAsString: string, inputElement: HTMLInputElement | null): void;
}
export interface NumericInputState {
currentImeInputInvalid: boolean;
prevMinProp?: number;
prevMaxProp?: number;
shouldSelectAfterUpdate: boolean;
value: string;
}
export declare class NumericInput extends AbstractPureComponent {
static displayName: string;
static VALUE_EMPTY: string;
static VALUE_ZERO: string;
private numericInputId;
static defaultProps: NumericInputProps;
static getDerivedStateFromProps(props: NumericInputProps, state: NumericInputState): {
value: string;
prevMaxProp: number | undefined;
prevMinProp: number | undefined;
};
private static CONTINUOUS_CHANGE_DELAY;
private static CONTINUOUS_CHANGE_INTERVAL;
private static roundAndClampValue;
state: NumericInputState;
private didPasteEventJustOccur;
private delta;
inputElement: HTMLInputElement | null;
private inputRef;
private intervalId?;
private incrementButtonHandlers;
private decrementButtonHandlers;
private getCurrentValueAsNumber;
render(): import("react/jsx-runtime").JSX.Element;
componentDidUpdate(prevProps: NumericInputProps, prevState: NumericInputState): void;
protected validateProps(nextProps: HTMLInputProps & NumericInputProps): void;
private renderButtons;
private renderInput;
private getButtonEventHandlers;
private handleButtonClick;
private startContinuousChange;
private stopContinuousChange;
private handleContinuousChange;
private handleInputFocus;
private handleInputBlur;
private handleInputKeyDown;
private handleCompositionEnd;
private handleCompositionUpdate;
private handleInputKeyPress;
private handleInputPaste;
private handleInputChange;
private handleNextValue;
private incrementValue;
private getIncrementDelta;
private roundAndClampValue;
private updateDelta;
}