import { FocusEvent, MouseEvent, MutableRefObject, RefObject } from 'react'; import { FocusTarget, SegmentType } from './DateField.types'; export interface UseDateFieldFocusArgs { disabled: boolean; fieldRef: RefObject; segmentRefs: MutableRefObject>; /** Ordered segment types (literals stripped), derived from the active locale. */ partsOrder: ReadonlyArray; /** Called when focus enters a segment (any path). */ onSegmentFocusChange?: (segment: SegmentType) => void; /** Called when focus leaves the field entirely (intra-field hops ignored). */ onFieldBlur?: () => void; } export interface UseDateFieldFocusReturn { focusedSegment: FocusTarget; fieldTabIndex: number; handleSegmentFocus: (segment: SegmentType, options?: FocusOptions) => void; handleFieldFocus: (event: FocusEvent) => void; handleFieldBlur: (event: FocusEvent) => void; handleFieldMouseDown: (event: MouseEvent) => void; focusNext: (currentType: SegmentType) => void; focusPrevious: (currentType: SegmentType) => void; } export declare function useDateFieldFocus({ disabled, fieldRef, segmentRefs, partsOrder, onSegmentFocusChange, onFieldBlur, }: UseDateFieldFocusArgs): UseDateFieldFocusReturn;