export interface UseInteractOutsideOptions { /** * Whether the outside interaction detection is enabled * @defaultValue true */ enabled?: boolean; /** * Callback fired when a pointer down event occurs outside the elements */ onPointerDownOutside?: (event: PointerEvent) => void; /** * Callback fired when a focus event occurs outside the elements */ onFocusOutside?: (event: FocusEvent) => void; /** * Generic callback fired for any interaction outside the elements */ onInteractOutside?: (event: PointerEvent | FocusEvent) => void; /** * Whether to include focus events in outside detection * @defaultValue false */ includeFocus?: boolean; /** * Whether to prevent the default behavior when outside interaction is detected * @defaultValue false */ preventDefault?: boolean; } /** * Custom hook for detecting pointer and focus interactions outside specified elements. * Commonly used for closing modals, dropdowns, popovers, etc. * * @param refs - Array of refs to elements that should be considered "inside" * @param options - Configuration options for the hook * * @example * ```tsx * const contentRef = useRef(null); * const triggerRef = useRef(null); * * useInteractOutside([contentRef, triggerRef], { * enabled: isOpen, * onPointerDownOutside: () => setIsOpen(false), * onInteractOutside: (event) => console.log('Outside interaction:', event) * }); * ``` */ export declare function useInteractOutside(refs: Array>, options?: UseInteractOutsideOptions): void;