import { ReactElement, ComponentPropsWithoutRef } from 'react';
import { HelperProps } from '../../internal/components';
import { LayoutUtilProps, Size, DataTrackingId } from '../../types';
import { FieldLabelProps } from '../../internal/types';
/**
 * Props for the NumberField component.
 * @extends Omit<ComponentPropsWithoutRef<"input">, "size" | "prefix" | "type" | "inputMode" | "value" | "defaultValue" | "onFocus" | "onBlur" | "onChange">
 * @extends LayoutUtilProps
 * @extends FieldLabelProps
 * @extends DataTrackingId
 */
export type NumberFieldProps = Omit<ComponentPropsWithoutRef<"input">, "size" | "prefix" | "type" | "inputMode" | "value" | "defaultValue" | "onFocus" | "onBlur" | "onChange"> & LayoutUtilProps & FieldLabelProps & {
    /**
     * Error state for the field. Pass `true` to indicate error styling without a message.
     * Pass a string, string[], or ReactElement (deprecated) for error messages.
     */
    error?: boolean | string | ReactElement | string[];
    /**
     * Label for the field.
     * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.
     */
    label?: string;
    /**
     * When `true`, hides the visible label and moves it to `aria-label` on the input.
     * Requires `label` to be set — the label is always needed for accessibility.
     * @default false
     */
    hideLabel?: boolean;
    prefix?: string;
    suffix?: string;
    size?: Extract<Size, "small" | "medium" | "large">;
    description?: HelperProps["description"];
    /**
     * @deprecated No longer used. Error messages always use `aria-live="assertive"`.
     */
    errorAriaLive?: HelperProps["errorAriaLive"];
    hint?: HelperProps["hint"];
    /**
     * Warning message(s) to display. Supports a single string or an array of strings.
     */
    warning?: string | string[];
    loading?: boolean;
    disabled?: boolean;
    minValue?: number;
    maxValue?: number;
    maximumFractionDigits?: number;
    minimumFractionDigits?: number;
    step?: number;
    value?: number | null;
    defaultValue?: number | null;
    onChange?: (value: number | null) => void;
    onFocus?: (event: React.FocusEvent) => void;
    onBlur?: (event: React.FocusEvent) => void;
    hideControls?: boolean;
} & DataTrackingId;
export declare const NumberField: import('react').ForwardRefExoticComponent<Omit<Omit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "defaultValue" | "prefix" | "inputMode" | "onFocus" | "onBlur" | "onChange" | "size" | "value" | "type"> & LayoutUtilProps & Pick<import('../../internal').LabelProps, "required" | "moreInfo"> & {
    labelProps?: Omit<import('../../internal').LabelProps, "children" | "moreInfo" | "required" | "id" | "htmlFor"> & import('../..').AiMarkWithTooltipOrPopoverProps;
} & {
    /**
     * Error state for the field. Pass `true` to indicate error styling without a message.
     * Pass a string, string[], or ReactElement (deprecated) for error messages.
     */
    error?: boolean | string | ReactElement | string[];
    /**
     * Label for the field.
     * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.
     */
    label?: string;
    /**
     * When `true`, hides the visible label and moves it to `aria-label` on the input.
     * Requires `label` to be set — the label is always needed for accessibility.
     * @default false
     */
    hideLabel?: boolean;
    prefix?: string;
    suffix?: string;
    size?: Extract<Size, "small" | "medium" | "large">;
    description?: HelperProps["description"];
    /**
     * @deprecated No longer used. Error messages always use `aria-live="assertive"`.
     */
    errorAriaLive?: HelperProps["errorAriaLive"];
    hint?: HelperProps["hint"];
    /**
     * Warning message(s) to display. Supports a single string or an array of strings.
     */
    warning?: string | string[];
    loading?: boolean;
    disabled?: boolean;
    minValue?: number;
    maxValue?: number;
    maximumFractionDigits?: number;
    minimumFractionDigits?: number;
    step?: number;
    value?: number | null;
    defaultValue?: number | null;
    onChange?: (value: number | null) => void;
    onFocus?: (event: React.FocusEvent) => void;
    onBlur?: (event: React.FocusEvent) => void;
    hideControls?: boolean;
} & DataTrackingId & import('react').RefAttributes<HTMLInputElement>>;
