import { CameraController } from './CameraController.js'; import { FlameNode, FrameData } from './FlameDataProcessor.js'; interface InteractionFrame { node: FlameNode; x1: number; x2: number; y1: number; y2: number; } /** * Handles mouse interactions, click detection, and drag operations */ export declare class InteractionHandler { #private; constructor(cameraController: CameraController); /** * Set the viewport dimensions */ setViewport(width: number): void; /** * Set the frames for interaction */ setFrames(frames: InteractionFrame[]): void; /** * Set the selected frame ID */ setSelectedFrame(frameId: string | null, triggerZoom?: boolean): void; /** * Handle mouse down event */ handleMouseDown(x: number, y: number): void; /** * Handle mouse move event */ handleMouseMove(x: number, y: number): void; /** * Handle mouse up event */ handleMouseUp(): void; /** * Handle scroll wheel event for vertical scrolling */ handleScroll(deltaY: number): void; /** * Handle click event */ handleClick(x: number, y: number): { frame: FrameData; stackTrace: FlameNode[]; children: FlameNode[]; } | null; /** * Check if currently dragging */ isDragInProgress(): boolean; /** * Check if dragging has occurred since the last mouse down */ hasDraggedDuringInteraction(): boolean; /** * Get the selected frame ID */ getSelectedFrameId(): string | null; } export {}; //# sourceMappingURL=InteractionHandler.d.ts.map