import * as React from 'react'; import { type BaseUIChangeEventDetails } from "../../internals/createBaseUIEventDetails.mjs"; import { REASONS } from "../../internals/reasons.mjs"; /** * Minimal store interface required by the focus guard hook. * Both PopoverStore and MenuStore satisfy this interface. */ interface TriggerFocusGuardStore { setOpen(open: boolean, eventDetails: BaseUIChangeEventDetails): void; select(key: 'positionerElement'): HTMLElement | null; context: { readonly beforeContentFocusGuardRef: React.RefObject; readonly triggerFocusTargetRef: React.RefObject; }; } /** * Provides focus guard handlers for popup triggers (Popover, Menu). * * When the popup is open, invisible focus guard elements are placed before and after * the trigger. These handlers close the popup and move focus to the appropriate * tabbable element when the guards receive focus (i.e. when the user tabs out). */ export declare function useTriggerFocusGuards(store: TriggerFocusGuardStore, triggerElementRef: React.RefObject): { preFocusGuardRef: React.RefObject; handlePreFocusGuardFocus: (event: React.FocusEvent) => void; handleFocusTargetFocus: (event: React.FocusEvent) => void; }; export {};