import { Entity } from '../entity/Entity'; import { Shape } from '../entity/Shape'; import { Repository } from '../entity/Repository'; import { Point2D } from '../entity/Point2D.entity'; import { EventBus } from '../../utils/EventBus'; export declare type MouseEventHandlers = { onMouseOver?: (sprite: MouseHandlerContainer) => void; onMouseOut?: (sprite: MouseHandlerContainer) => void; onMouseClick?: (sprite: MouseHandlerContainer) => void; }; export declare type MouseHandlerContainer = Entity & { mouseInteraction: MouseEventHandlers; shape: Shape; }; export declare function isMouseHandlerContainer(props: MouseHandlerContainer | {}): props is MouseHandlerContainer; export declare class MouseHandler { interactiveSprites: Repository; pos: Point2D; element: HTMLElement; overSprite?: MouseHandlerContainer; onMouseClick?: (pos: Point2D) => void; constructor(element: HTMLElement, removeEventBus: EventBus); add(obj: MouseHandlerContainer): void; remove(obj: MouseHandlerContainer): void; checkMouseOut(): void; findLastInteractive(testFct: (sprite: MouseHandlerContainer) => boolean | undefined): MouseHandlerContainer | undefined; tick(): void; }