///
///
import { IPoint, IRect } from '@musicenviro/base';
import { EventEmitter } from 'events';
export declare class MouseArea {
rect: IRect;
id: number;
private emitter;
constructor(rect: IRect, id: number);
emitMouseDown(p: IPoint): void;
onMouseDown(callback: (p: IPoint) => void): void;
emitMouseEnter(): void;
onMouseEnter(callback: () => void): void;
emitMouseLeave(): void;
onMouseLeave(callback: () => void): void;
}
export declare class CanvasMouseManager extends EventEmitter {
dragImage: HTMLImageElement;
canvas: HTMLCanvasElement;
lastDragStamp: number;
dragStart: IPoint;
areas: MouseArea[];
hover: Set;
initialize(canvas: HTMLCanvasElement): void;
getTopHover(): any;
createArea(left: number, top: number, right: number, bottom: number, id: number): MouseArea;
getAreaUnderPoint(point: IPoint): MouseArea;
getAllAreasUnderPoint(point: IPoint): Set;
handleMouseDown(event: MouseEvent): void;
handleMove(event: MouseEvent): void;
handleMouseLeave(event: MouseEvent): void;
handleDragStart(event: DragEvent): void;
handleMouseBoxDragEnd(ref: React.RefObject): void;
handleDrag(event: DragEvent): void;
}
//# sourceMappingURL=CanvasMouseManager.d.ts.map