import { ChangeEvent, FocusEvent, KeyboardEvent, ReactElement } from 'react';
import { SingleLineInputBaseProps } from './SingleLineInputBase';
import { SIZES } from '../../constants';
import { GenericComponent } from '../../@types/types';
export interface NumericInputProps extends Omit<SingleLineInputBaseProps, 'connectedLeft' | 'connectedRight' | 'inverse' | 'onBlur' | 'onChange ' | 'onKeyDown' | 'size' | 'suffix' | 'value'> {
    /** Element stuck to the left hand side of the component. */
    connectedLeft?: ReactElement;
    /** Element stuck to the right hand side of the component. */
    connectedRight?: ReactElement;
    /** Boolean indicating whether the input should render as inverse. */
    inverse?: boolean;
    /** The maximum value that can be inputted. */
    max?: number;
    /** The maximum number of digits that can be inputted. */
    maxLength?: number;
    /** The minimum value that can be inputted. */
    min?: number;
    /** Callback function that is fired when blurring the input field. */
    onBlur?: (event: FocusEvent<HTMLInputElement>) => void;
    /** Callback function that is fired when the component's value changes. */
    onChange?: (event: ChangeEvent<HTMLElement>, value: string) => void;
    /** Callback function that is fired when the keyboard is touched. */
    onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;
    /** Size of the input element. */
    size?: Exclude<typeof SIZES[number], 'fullscreen' | 'smallest' | 'hero'>;
    /** Limit increment value for numeric inputs. */
    step?: number;
    /** Specifiy where the stepper controls should be rendered. */
    stepper?: 'none' | 'connected' | 'suffix';
    /** The text string/element to use as a suffix inside the input field */
    suffix?: ReactElement[] | ReactElement;
    /** Current value of the input element. */
    value?: string | number;
}
declare const NumericInput: GenericComponent<NumericInputProps>;
export default NumericInput;
