export default class InteractionController {
    /**
     * @param {object} options
     * @param {import("../view/view.js").default} options.viewRoot
     * @param {import("../gl/webGLHelper.js").default} options.glHelper
     * @param {import("../utils/ui/tooltip.js").default} options.tooltip
     * @param {import("../utils/animator.js").default} options.animator
     * @param {(type: string, event: any) => void} options.emitEvent
     * @param {Record<string, import("../tooltip/tooltipHandler.js").TooltipHandler>} options.tooltipHandlers
     * @param {() => void} options.renderPickingFramebuffer
     * @param {() => number} options.getDevicePixelRatio
     */
    constructor({ viewRoot, glHelper, tooltip, animator, emitEvent, tooltipHandlers, renderPickingFramebuffer, getDevicePixelRatio, }: {
        viewRoot: import("../view/view.js").default;
        glHelper: import("../gl/webGLHelper.js").default;
        tooltip: import("../utils/ui/tooltip.js").default;
        animator: import("../utils/animator.js").default;
        emitEvent: (type: string, event: any) => void;
        tooltipHandlers: Record<string, import("../tooltip/tooltipHandler.js").TooltipHandler>;
        renderPickingFramebuffer: () => void;
        getDevicePixelRatio: () => number;
    });
    getCurrentHover(): {
        mark: import("../marks/mark.js").default;
        datum: import("../data/flowNode.js").Datum;
        uniqueId: number;
    };
    suspendHoverTracking(): void;
    /**
     * @param {MouseEvent} [mouseEvent]
     */
    resumeHoverTracking(mouseEvent?: MouseEvent): void;
    /**
     * @returns {() => void}
     */
    registerInteractionEvents(): () => void;
    /**
     * This method should be called in a mouseMove handler. If not called, the
     * tooltip will be hidden.
     *
     * @param {T} datum
     * @param {function(T):Promise<string | HTMLElement | import("lit").TemplateResult>} [converter]
     * @template T
     */
    updateTooltip<T>(datum: T, converter?: (arg0: T) => Promise<string | HTMLElement | import("lit").TemplateResult>): void;
    #private;
}
export type ClientPointLike = {
    clientX: number;
    clientY: number;
};
//# sourceMappingURL=interactionController.d.ts.map