/** * State management for GraphQL document tooltips * * Handles hover delays, pinning, and multiple tooltip coordination */ export interface TooltipState { /** Currently visible tooltip (via hover) */ hoveredId: string | null; /** Set of pinned tooltip IDs */ pinnedIds: Set; /** ID pending show (waiting for delay) */ pendingShowId: string | null; /** ID pending hide (waiting for grace period) */ pendingHideId: string | null; } export interface UseTooltipStateOptions { /** Delay before showing tooltip on hover (ms) */ showDelay?: number; /** Delay before hiding tooltip on mouse leave (ms) */ hideDelay?: number; /** Whether to allow multiple pinned tooltips */ allowMultiplePins?: boolean; } export interface UseTooltipStateReturn { /** Check if a tooltip should be visible */ isOpen: (id: string) => boolean; /** Check if a tooltip is pinned */ isPinned: (id: string) => boolean; /** Handle hover start */ onHoverStart: (id: string) => void; /** Handle hover end */ onHoverEnd: (id: string) => void; /** Handle click (toggle pin) */ onTogglePin: (id: string) => void; /** Handle tooltip content hover (cancels hide) */ onTooltipHover: (id: string) => void; /** Unpin a specific tooltip */ unpin: (id: string) => void; /** Unpin all tooltips */ unpinAll: () => void; } export declare const useTooltipState: (options?: UseTooltipStateOptions) => UseTooltipStateReturn; //# sourceMappingURL=use-tooltip-state.d.ts.map