import { AriaButtonProps } from '../button/useButton'; import { AriaLabelingProps, DOMAttributes, DOMProps, GroupDOMAttributes, TextInputDOMEvents, ValidationResult } from '@react-types/shared'; import { InputHTMLAttributes, LabelHTMLAttributes, RefObject } from 'react'; import { NumberFieldProps, NumberFieldState } from 'react-stately/useNumberFieldState'; export interface AriaNumberFieldProps extends NumberFieldProps, DOMProps, AriaLabelingProps, TextInputDOMEvents { /** A custom aria-label for the decrement button. If not provided, the localized string "Decrement" is used. */ decrementAriaLabel?: string; /** A custom aria-label for the increment button. If not provided, the localized string "Increment" is used. */ incrementAriaLabel?: string; /** * Enables or disables changing the value with scroll. */ isWheelDisabled?: boolean; } export interface NumberFieldAria extends ValidationResult { /** Props for the label element. */ labelProps: LabelHTMLAttributes; /** Props for the group wrapper around the input and stepper buttons. */ groupProps: GroupDOMAttributes; /** Props for the input element. */ inputProps: InputHTMLAttributes; /** Props for the increment button, to be passed to `useButton`. */ incrementButtonProps: AriaButtonProps; /** Props for the decrement button, to be passed to `useButton`. */ decrementButtonProps: AriaButtonProps; /** Props for the number field's description element, if any. */ descriptionProps: DOMAttributes; /** Props for the number field's error message element, if any. */ errorMessageProps: DOMAttributes; } /** * Provides the behavior and accessibility implementation for a number field component. * Number fields allow users to enter a number, and increment or decrement the value using stepper buttons. */ export declare function useNumberField(props: AriaNumberFieldProps, state: NumberFieldState, inputRef: RefObject): NumberFieldAria;