/** * State management for GraphQL token popovers * * Handles hover delays, pinning, and multiple popover coordination */ export interface PopoverState { /** Currently visible popover (via hover) */ hoveredId: string | null; /** Set of pinned popover IDs */ pinnedIds: Set; /** ID pending show (waiting for delay) */ pendingShowId: string | null; /** ID pending hide (waiting for grace period) */ pendingHideId: string | null; } export interface UsePopoverStateOptions { /** Delay before showing popover on hover (ms) */ showDelay?: number; /** Delay before hiding popover on mouse leave (ms) */ hideDelay?: number; /** Whether to allow multiple pinned popovers */ allowMultiplePins?: boolean; } export interface UsePopoverStateReturn { /** Check if a popover should be visible */ isOpen: (id: string) => boolean; /** Check if a popover 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 popover content hover (cancels hide) */ onPopoverHover: (id: string) => void; /** Handle popover content leave (starts hide timer) */ onPopoverLeave: (id: string) => void; /** Unpin a specific popover */ unpin: (id: string) => void; /** Unpin all popovers */ unpinAll: () => void; } export declare const usePopoverState: (options?: UsePopoverStateOptions) => UsePopoverStateReturn; //# sourceMappingURL=use-popover-state.d.ts.map