import { Shape } from "./Shape"; import { Board } from "../../board"; import { IShapeData } from "./IShapeData"; export enum ShapeEventEnum { StartDirty = 'start_dirty', EndDirty = 'end_dirty', BoardChanged = 'board_changed' } export interface ShapeEventMap { [ShapeEventEnum.StartDirty]: CustomEvent<{ shape: Shape; prev?: Partial; }>; [ShapeEventEnum.EndDirty]: CustomEvent<{ shape: Shape; prev?: Partial; }>; [ShapeEventEnum.BoardChanged]: CustomEvent<{ shape: Shape; prev?: Board; }>; } export type ShapeEventListener = (this: HTMLObjectElement, ev: ShapeEventMap[K]) => any;