import { PopupArrowMode, PopupArrowPlacement } from '../../../shared/types/popup';
/** Separación mínima entre el trigger y la punta de la flecha (eje hacia el trigger). */
export declare const POPOVER_ARROW_MIN_GAP_TO_TRIGGER_PX = 6;
/**
 * Extensión de la flecha fuera del rectángulo del panel hacia el trigger (incluye laterales;
 * el acople visual en `left`/`right` se ajusta en `PopupArrow` desplazando el beak hacia el panel).
 */
export declare const POPUP_ARROW_OVERHANG_PX = 11;
/**
 * Se **resta** del inset lateral del beak en `PopupArrow` (bordes `left`/`right` del panel).
 * No va en `usePopup`: un extra en `left` a menudo lo anula el clamp al viewport y parece que
 * «no se mueve nada»; aquí el cambio es siempre visible (más pico hacia el trigger al subir el valor).
 */
export declare const POPOVER_ARROW_SIDE_GAP_EXTRA_PX = -1.5;
type PopupPosition = 'top' | 'top-left' | 'top-right' | 'bottom' | 'left' | 'right' | 'bottom-right' | 'bottom-center' | 'bottom-left';
/**
 * Flecha en modo manual según alineación sobre el borde del panel.
 */
export declare function placementFromManualMode(mode: Exclude<PopupArrowMode, false | 'auto'>, panelWidth: number, panelHeight: number): PopupArrowPlacement;
/**
 * Flecha automática hacia el centro del trigger según la posición del popup.
 */
export declare function placementFromAutoMode(position: PopupPosition, triggerRect: DOMRect, panelLeft: number, panelTop: number, panelWidth: number, panelHeight: number): PopupArrowPlacement;
export declare function resolvePopupArrowPlacement(mode: PopupArrowMode, position: PopupPosition, triggerRect: DOMRect, panelLeft: number, panelTop: number, panelWidth: number, panelHeight: number, 
/** Con posicionamiento absoluto respecto al padre, `auto` no puede apuntar al trigger con precisión. */
absolute: boolean): PopupArrowPlacement | null;
export {};
//# sourceMappingURL=popupArrowPlacement.d.ts.map