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<HTMLElement | null>;
}
/**
 * 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<HTMLDivElement>;
    popupRef: RefObject<HTMLDivElement>;
    contentRef: RefObject<HTMLDivElement>;
    arrowPlacement: PopupArrowPlacement | null;
    containerRef: RefObject<HTMLDivElement>;
    popupUniqueId: string;
    togglePopup: (event?: ReactMouseEvent) => void;
    closePopup: () => void;
    openPopup: () => void;
    openOnHoverTriggerProps: {
        onMouseMove?: ((e: ReactMouseEvent) => void) | undefined;
        onMouseEnter: (event?: MouseEvent | ReactMouseEvent<Element>) => void;
        onMouseLeave: () => void;
    } | undefined;
    openOnHoverPopupProps: {
        onMouseEnter: () => void;
        onMouseLeave: () => void;
    } | undefined;
};
//# sourceMappingURL=usePopup.d.ts.map