import type { MouseEvent } from "react"; /** * Valor de retorno del hook useSidebarIndicator * @interface */ interface UseSidebarIndicatorReturn { /** Indica si el indicador está visible */ isVisible: boolean; /** Indica si el mouse está sobre el área de items */ isOverItems: boolean; /** Elemento del item actualmente hovered o enfocado (para FluidHoverIndicator) */ currentItemElement: HTMLElement | null; /** ID del item bajo el indicador (para tooltip con subContent) */ hoveredItemId: string | null; /** Label del item hovered (para tooltip simple) */ hoveredLabel: string | null; /** Manejador de evento mousemove */ handleMouseMove: (e: MouseEvent) => void; /** Manejador de evento mouseenter */ handleMouseEnter: () => void; /** Manejador de evento mouseleave */ handleMouseLeave: () => void; /** Manejador de evento focus */ handleFocus: () => void; /** Manejador de evento blur */ handleBlur: (e: React.FocusEvent) => void; /** Función para limpiar el estado hovered desde fuera (tooltip mouseleave) */ clearHoveredState: () => void; } /** * Hook para gestionar el indicador visual del Sidebar * * @description * Hook que implementa la lógica del indicador visual que sigue al cursor * del mouse dentro del sidebar. El indicador se muestra cuando: * - El mouse está sobre el sidebar (isHovering = true) * - El cursor está en el área de items (isOverItems = true) * * Utiliza requestAnimationFrame para optimizar el rendimiento y evitar * cálculos excesivos durante el movimiento del mouse. * * El indicador también se actualiza cuando se navega por teclado, * integrándose con useSidebarKeyboard. * * @returns {UseSidebarIndicatorReturn} Estado y manejadores de eventos * * @example * ```tsx * function SidebarNav() { * const { * isVisible, * handleMouseMove, * handleMouseEnter, * handleMouseLeave * } = useSidebarIndicator() * * return ( * * ) * } * ``` */ export declare function useSidebarIndicator(): UseSidebarIndicatorReturn; export {}; //# sourceMappingURL=useSidebarIndicator.d.ts.map