import * as React from 'react'; import { Timeout } from '@base-ui-components/utils/useTimeout'; import type { NumberFieldRoot } from "./NumberFieldRoot.js"; import { EventWithOptionalKeyState } from "../utils/types.js"; import type { IncrementValueParameters } from "../utils/types.js"; export type InputMode = 'numeric' | 'decimal' | 'text'; export interface NumberFieldRootContext { inputValue: string; value: number | null; startAutoChange: (isIncrement: boolean, event?: React.MouseEvent | Event) => void; stopAutoChange: () => void; minWithDefault: number; maxWithDefault: number; disabled: boolean; readOnly: boolean; id: string | undefined; setValue: (value: number | null, details: NumberFieldRoot.ChangeEventDetails) => void; getStepAmount: (event?: EventWithOptionalKeyState) => number | undefined; incrementValue: (amount: number, params: IncrementValueParameters) => void; inputRef: React.RefObject; allowInputSyncRef: React.RefObject; formatOptionsRef: React.RefObject; valueRef: React.RefObject; lastChangedValueRef: React.RefObject; hasPendingCommitRef: React.RefObject; isPressedRef: React.RefObject; intentionalTouchCheckTimeout: Timeout; movesAfterTouchRef: React.RefObject; name: string | undefined; required: boolean; invalid: boolean | undefined; inputMode: InputMode; getAllowedNonNumericKeys: () => Set; min: number | undefined; max: number | undefined; setInputValue: React.Dispatch>; locale: Intl.LocalesArgument; isScrubbing: boolean; setIsScrubbing: React.Dispatch>; state: NumberFieldRoot.State; onValueCommitted: (value: number | null, eventDetails: NumberFieldRoot.CommitEventDetails) => void; } export declare const NumberFieldRootContext: React.Context; export declare function useNumberFieldRootContext(): NumberFieldRootContext;