import { type Ref } from "vue"; import { useFocusTrap } from "@vueuse/integrations/useFocusTrap"; export type CloseReason = "escape" | "outside"; export type InitialFocus = string | ((root: HTMLElement) => HTMLElement | null | undefined); /** * Focus-restoration options for pairing `usePopupTrap` with `usePopupMenu`. * * `usePopupMenu` owns menu-close focus restoration. These settings disable * both competing restoration paths in `usePopupTrap` and the underlying * `focus-trap` implementation. Spread this preset last so those integration * settings take precedence. */ export declare const POPUP_MENU_TRAP_OPTIONS: { readonly returnFocusToTrigger: false; readonly focusTrapOptions: { readonly returnFocusOnDeactivate: false; }; }; export declare function usePopupTrap(opts: { isOpen: Ref; onRequestClose?: (reason: CloseReason, ev?: Event) => void; popupSelector?: string | string[]; triggerEl?: Ref; resolvePopupEl?: () => HTMLElement | null; initialFocus?: InitialFocus; focusTrapOptions?: Parameters[1]; returnFocusToTrigger?: boolean; }): { popupRef: import("vue").ShallowRef; activate: (opts?: import("focus-trap").ActivateOptions) => void; deactivate: (opts?: import("focus-trap").DeactivateOptions) => void; lastCloseReason: Readonly>; setPopupEl: (el: HTMLElement | null) => HTMLElement; };