///
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;
}