import { CanvasPortalHoverDetail, CanvasPortalSource, TooltipContext } from '../utils/portalHoverEvents'; import { CanvasEvent, CanvasNode, Rect } from './CanvasNode'; export interface CanvasHoverControllerOptions { onCursorChange?: (cursor: string) => void; onPortalTargetChange?: (target: CanvasNode | null, baseEvent: CanvasEvent | null) => void; portalHoverDispatch?: (detail: CanvasPortalHoverDetail, target?: EventTarget | null) => void; getPortalEventTarget?: () => EventTarget | null; portalSource?: CanvasPortalSource; getTooltipContext?: () => TooltipContext | undefined; } export declare class CanvasHoverController { private readonly options; private hoveredNode; private activePortalNode; private currentCursor; private bounds; constructor(options?: CanvasHoverControllerOptions); setAbsoluteBounds(bounds: Rect | null): void; handlePointerMove(hits: CanvasNode[], baseEvent: CanvasEvent | null): void; handlePointerLeave(): void; handlePortalReset(): void; computeCursor(relativeX: number, relativeY: number, rootNode: CanvasNode): string; getCurrentCursor(): string; private transitionHover; private buildEvent; private updateCursor; private findPortalTarget; private updatePortalHover; private dispatchPortalHover; }