import { RefObject } from 'react'; export interface DropdownPosition { top: number; left: number; width: number; } export interface UseDropdownPositionOptions { /** Reference to the dropdown trigger element */ dropdownRef: RefObject; /** Whether the dropdown is currently open */ isOpen: boolean; /** Gap between trigger and menu in pixels */ gap?: number; } /** * Hook for calculating dropdown menu position * * Handles positioning updates on scroll and resize events. * Uses fixed positioning for proper portal behavior. * * @example * ```tsx * const { position } = useDropdownPosition({ * dropdownRef, * isOpen, * gap: 4 * }); * ``` */ export declare function useDropdownPosition({ dropdownRef, isOpen, gap, }: UseDropdownPositionOptions): { position: DropdownPosition; updatePosition: () => void; }; /** * Hook for managing dropdown portal container * * Creates and manages a portal container element for the dropdown menu. * Automatically cleans up on unmount. * * @example * ```tsx * const { portalContainer } = useDropdownPortal(); * * return portalContainer && createPortal(, portalContainer); * ``` */ export declare function useDropdownPortal(): { portalContainer: HTMLElement | null; }; /** * Hook for handling click outside * * Detects clicks outside of specified elements and triggers a callback. * * @example * ```tsx * useClickOutside({ * refs: [dropdownRef, menuRef], * isActive: isOpen, * onClickOutside: () => setIsOpen(false) * }); * ``` */ export declare function useClickOutside({ refs, isActive, onClickOutside, }: { refs: RefObject[]; isActive: boolean; onClickOutside: () => void; }): void; //# sourceMappingURL=useDropdown.d.ts.map