/// import { EventEmitter } from 'events'; import { RenderEngine } from './render-engine'; import { OffscreenRenderEngine } from './offscreen-render-engine'; import { CursorTypes, HitRegion, Mouse, RegionTypes } from '../types'; import { SeparatedInteractionsEngine } from './separated-interactions-engine'; export type InteractionHotkeysSettings = { scrollSpeed: number; zoomSpeed: number; fastMultiplayer: number; active: boolean; }; export type InteractionSettings = { hotkeys: InteractionHotkeysSettings; }; export type InteractionOptions = { hotkeys?: Partial; }; export declare class InteractionsEngine extends EventEmitter { private renderEngine; private readonly canvas; private hitRegions; private instances; mouse: Mouse; selectedRegion: HitRegion | null; private hoveredRegion; private moveActive; private mouseDownPosition; private mouseDownHoveredInstance; private hoveredInstance; private currentCursor; private keys; private hotkeysActive; private settings; constructor(canvas: HTMLCanvasElement, renderEngine: RenderEngine, settings?: InteractionOptions); makeInstance(renderEngine: OffscreenRenderEngine): SeparatedInteractionsEngine; reset(): void; destroy(): void; initListeners(): void; removeListeners(): void; hotkeys(status: boolean): void; handleKeyDown(e: KeyboardEvent): void; handleKeyUp(e: KeyboardEvent): void; continueHandleKeys(): void; key(code: any): boolean; getSpeed(): number; handleKeys(timeDelta: any): void; handleMouseWheel(e: WheelEvent): void; changeZoom(zoomDelta: number, positionX?: number): void; fixPositionAfterZoom(realView: number, fromPoint: number): void; handleMouseDown(): void; handleMouseUp(): void; handleMouseMove(e: MouseEvent): void; handleRegionHit(): void; checkRegionHover(): void; getHoveredRegion(): HitRegion; clearHitRegions(): void; addHitRegion(type: RegionTypes, data: T, x: number, y: number, w: number, h: number, cursor: CursorTypes): void; setCursor(cursor: string): void; clearCursor(): void; }