import { InputProps } from '../Input/Input.types';
export declare type Locale = string | string[];
export declare const fillDecimalScaleVariant: {
    readonly none: "none";
    readonly onBlur: "onBlur";
    readonly always: "always";
};
export declare type FillDecimalScaleVariant = typeof fillDecimalScaleVariant[keyof typeof fillDecimalScaleVariant];
export interface ValueChange {
    /**
     * @since 10.19.0
     */
    value: string;
    /**
     * @since 10.19.0
     */
    parsedNumber: number | null;
}
export declare type InputValue = string | number | undefined | null;
interface QaTags {
    wrapper?: string;
    increment?: string;
    decrement?: string;
}
export interface NumberInputProps extends Omit<InputProps, 'value' | 'defaultValue' | 'onChange' | 'variant'> {
    /**
     * The maximum number of fraction digits to use. Possible values range from 0 to 14. Setting to true will result in the maximum size, setting to false will allow 0 decimals, whole numbers only.
     * @defaultValue true
     * @since 10.19.0
     */
    decimalScale?: boolean | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;
    /**
     * Initial value of an uncontrolled component
     * @since 10.19.0
     */
    defaultValue?: InputValue;
    /**
     * <Code>none</Code> prevents from adding zeros to match given
     * <Code>decimalScale</Code>.<br /> <Code>always</Code> automatically adds
     * zeros to match given
     * <Code>decimalScale</Code>. <br />
     * <Code>onBlur</Code> automatically adds zeros to match given{' '}
     * <Code>decimalScale</Code> when input has lost focus.
     * @default 'none'
     * @since 10.19.0
     */
    fillDecimalScale?: FillDecimalScaleVariant;
    /**
     * A string with a BCP 47 language tag or an array of such strings which specifies number formatting.
     * @defaultValue en-US
     * @since 10.19.0
     */
    locale?: Locale;
    /**
     * `(value: ValueChange) => void`, where `ValueChange` is an object `{ value: string, parsedNumber: number | null }`.
     * @since 10.19.0
     */
    onChange?: (value: ValueChange) => void;
    /**
     * A string which is added to input as a prefix.
     * @since 10.19.0
     */
    prefix?: string;
    /**
     * A stepping interval which is used in incrementer. Zero value turns off incrementer.
     * @defaultValue 0
     * @since 10.19.0
     */
    step?: number;
    /**
     * A string which is added to input as a suffix
     * @since 10.19.0
     */
    suffix?: string;
    /**
     * Value of a controlled component
     * @since 10.19.0
     */
    value?: InputValue;
    /**
     * @since 10.19.0
     */
    qa?: QaTags;
}
export interface UseNumberFormatConfig extends Pick<NumberInputProps, 'decimalScale' | 'fillDecimalScale' | 'locale'> {
}
export interface Separators {
    /**
     * @since 10.19.0
     */
    decimal: string;
    /**
     * @since 10.19.0
     */
    group: string;
}
export interface ParsedInputValue {
    /**
     * @since 10.19.0
     */
    integer: string;
    /**
     * @since 10.19.0
     */
    decimal: string;
    /**
     * @since 10.19.0
     */
    fraction: string;
    /**
     * @since 10.19.0
     */
    parsedNumber: number;
}
export declare type PressedKey = string | undefined;
export interface CursorPosition {
    /**
     * @since 10.19.0
     */
    selectionStart: number;
    /**
     * @since 10.19.0
     */
    selectionEnd: number;
    /**
     * @since 10.19.0
     */
    selection: string;
}
export {};
