import { FocusEvent, SyntheticEvent } from "react"; import { OverlayPosition } from "./useOverlayPosition"; export interface UsePopupOptions { id?: string; open?: boolean | null; defaultOpen?: boolean; onOpenChange?: (event: SyntheticEvent, newValue: boolean) => void; hideOnEscape?: boolean; hideOnLeave?: boolean; hideOnOutsideClick?: boolean; restoreFocus?: boolean; trigger?: "none" | "click"; hasArrow?: boolean; position?: OverlayPosition; offset?: number[]; disabled?: boolean; allowFlip?: boolean; allowPreventOverflow?: boolean; boundaryElement?: HTMLElement; keyProp?: string; } export declare function usePopup(type: "menu" | "listbox" | "dialog", { id, open, defaultOpen, onOpenChange, hideOnEscape, hideOnLeave, hideOnOutsideClick, restoreFocus, trigger, hasArrow, position, offset, disabled, allowFlip, allowPreventOverflow, boundaryElement, keyProp }?: UsePopupOptions): { isOpen: boolean; setIsOpen: (event: SyntheticEvent, newValue: boolean) => void; focusScope: import("../../shared").DomScope; focusManager: import("../../shared").FocusManager; triggerProps: { onClick?: undefined; onKeyDown?: undefined; onKeyUp?: undefined; onMouseEnter?: undefined; onFocus?: undefined; onBlur?: undefined; } & { onClick: (event: SyntheticEvent) => void; onKeyDown: (event: import("react").KeyboardEvent) => void; onKeyUp: (event: import("react").KeyboardEvent) => void; onMouseEnter?: undefined; onFocus?: undefined; onBlur?: undefined; } & { onMouseEnter: (event: import("react").MouseEvent) => void; onFocus: (event: FocusEvent) => void; onBlur: (event: FocusEvent) => void; onClick?: undefined; onKeyDown?: undefined; onKeyUp?: undefined; } & { tabIndex: number; "aria-haspopup": "dialog" | "menu" | "listbox"; "aria-expanded": boolean; "aria-controls": string; ref: import("../../shared").MergedRef; }; overlayProps: { onKeyDown: (event: import("react").KeyboardEvent) => void; } & { onKeyDown?: undefined; } & { onKeyDown: (event: import("react").KeyboardEvent) => void; } & { id: string; show: boolean; ref: import("../../shared").MergedRef; }; arrowProps: { ref?: undefined; } | { ref: import("../../shared").MergedRef; }; };