import { RefObject, CSSProperties, MouseEvent as ReactMouseEvent } from 'react'; import { PopupArrowMode, PopupArrowPlacement } from '../../../shared/types/popup'; /** Re-export para imports profundos que apuntaban a este fichero. */ export { POPUP_OPEN_ON_HOVER_CLOSE_DELAY_MS, POPUP_OPEN_ON_HOVER_DEFAULT_MS, } from './popupHoverConstants'; interface UsePopupProps { position?: 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-center' | 'bottom-left' | 'bottom-right' | 'left' | 'right'; offset?: number; closeOnClickOutside?: boolean; closeOnEscape?: boolean; popupId?: string; onOpen?: () => void; onClose?: () => void; disabled?: boolean; absolute?: boolean; popoverArrow?: PopupArrowMode; /** `true` usa retardo por defecto; número = ms hasta abrir. */ openOnHover?: boolean | number; /** Ver {@link PopupProps.hoverAnchorFollowPointer}. */ hoverAnchorFollowPointer?: boolean; /** Ver {@link PopupProps.openOnHoverAllowPanelPointer}. */ openOnHoverAllowPanelPointer?: boolean; externalTriggerRef?: RefObject; } /** * Estado y efectos para un popup anclado a un trigger: posición, cierre por fuera/escape, * coordinación de un solo popup abierto y modo hover (incl. coexistencia con modales del DS). * * @returns Refs al trigger/panel/contenido, estilos calculados y handlers para el organismo `Popup`. */ export declare const usePopup: ({ position, offset, closeOnClickOutside, closeOnEscape, popupId, onOpen, onClose, disabled, absolute, popoverArrow, openOnHover, hoverAnchorFollowPointer, openOnHoverAllowPanelPointer, externalTriggerRef, }: UsePopupProps) => { isOpen: boolean; popupStyle: CSSProperties; isPositioned: boolean; triggerRef: RefObject; popupRef: RefObject; contentRef: RefObject; arrowPlacement: PopupArrowPlacement | null; containerRef: RefObject; popupUniqueId: string; togglePopup: (event?: ReactMouseEvent) => void; closePopup: () => void; openPopup: () => void; openOnHoverTriggerProps: { onMouseMove?: ((e: ReactMouseEvent) => void) | undefined; onMouseEnter: (event?: MouseEvent | ReactMouseEvent) => void; onMouseLeave: () => void; } | undefined; openOnHoverPopupProps: { onMouseEnter: () => void; onMouseLeave: () => void; } | undefined; }; //# sourceMappingURL=usePopup.d.ts.map