import { default as React } from 'react';
export declare const DEFAULT_VALUE = 0;
export declare const DEFAULT_STEP = 1;
export declare const DEFAULT_MIN = 0;
export declare const DEFAULT_MAX: number;
export declare const convertNonIntegerToDefault: (value: number | undefined, fallback: number) => number;
export type NumberInputProps = Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'controls'> & {
    /**
     * A native input id attribute.
     *
     * Passed through as HTML attribute to the input element.
     */
    id?: string;
    /**
     * The minimum value of the input.
     *
     * @default 0
     */
    min?: number;
    /**
     * The maximum value of the input.
     *
     * @default Number.MAX_VALUE
     */
    max?: number;
    /**
     * The initial value of the input.
     *
     * Used to control the component from the outside.
     *
     * @default 0
     */
    value?: number;
    /**
     * Lets you omit the default value of "0" when the vale is not defined.
     *
     * The input will be empty in this case.
     *
     * @default false
     */
    noDefault?: boolean;
    /**
     * The size of increment or decrement (only works with number type).
     *
     * @default 1
     */
    step?: number;
    /**
     * Enables or disabled the input.
     *
     * @default false
     */
    disabled?: boolean;
    /**
     * Callback function triggered when the input value changes.
     *
     * When the value is removed by the user, the input is kept empty, but it triggers the callback without any value
     * since the user has finished his input.
     *
     * @param value The new value of the input.
     */
    onChange?: (value?: number) => void;
    /**
     * Callback function that gets triggered after filtering out invalid keystrokes.
     *
     * @param event The keyboard event.
     */
    onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
    /**
     * Defines the size of the input to be rendered.
     *
     * @default 'md'
     */
    bsSize?: 'sm' | 'md' | 'lg';
    /**
     * A unit for this value.
     *
     * This will be shown in a dedicated input addon.
     */
    unit?: string | React.ReactNode;
    /**
     * A rioglyph icon tio be shown in front of the input.
     */
    inputAddon?: string;
    /**
     * Input error message.
     */
    errorMessage?: string | React.ReactNode;
    /**
     * Input warning message.
     */
    warningMessage?: string | React.ReactNode;
    /**
     * Feedback message width.
     *
     * @default 'normal'
     */
    messageWhiteSpace?: 'normal' | 'nowrap' | 'pre-line';
    /**
     * This prop is used by the NumberControl component to pass on the +/- spinner controls.
     *
     * @internal
     */
    controls?: React.ReactNode;
    /**
     * The input placeholder if no value is given.
     */
    placeholder?: string;
    /**
     * Number of digits after the comma the value should be fixed to.
     *
     * @default 3
     */
    digitPrecision?: number;
    /**
     * Additional classes to be set on the component.
     */
    className?: string;
};
declare const NumberInput: React.ForwardRefExoticComponent<Omit<NumberInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
export default NumberInput;
