import type { IMouseDownEvent, IMouseMoveEvent, IMouseUpEvent, IRectangleShape, IShape } from '../../../abstraction'; import { DragableDrawer } from './draggable-drawer'; export declare abstract class RectangleShapeDrawer extends DragableDrawer { protected onMouseDown(event: IMouseDownEvent): void; protected onMouseMove(event: IMouseMoveEvent): void; protected onMouseUp(event: IMouseUpEvent): void; protected updateShape(left: number, top: number, width: number, height: number): void; protected isMayClick(width: number, height: number): boolean; protected abstract isValidDimension(width: number, height: number): boolean; protected abstract createShape(): T; protected abstract triggerShapeCreatedEvent(event: IMouseUpEvent): void; private shouldAddShape; private isIntersectSelectShape; }