import type { ICanvas, IDrawer, IKeyboard, IMouse, IRenderer, IRendererEvent, IShape, ShapeType } from '../../../abstraction'; import { DrawerType } from '../../../abstraction'; export declare abstract class DrawerBase implements IDrawer { protected _renderer?: IRenderer; protected _shapes: Array; protected _current?: T; protected _suspended: boolean; protected _shouldShowShapeLabel: boolean; protected _shouldShowSmallShape: boolean; protected _enableSmallShape: boolean; protected _shapeAlpha?: number; constructor(shapes?: Array); abstract get type(): DrawerType; abstract get shapeType(): ShapeType; abstract isBase(): boolean; abstract isDragable(): boolean; abstract isClickable(): boolean; abstract isSelectable(): boolean; get shapes(): Array; get current(): T | undefined; get suspended(): boolean; get shouldShowShapeLabel(): boolean; get shouldShowSmallShape(): boolean; get isEnableSmaleShape(): boolean; get hoverSources(): Array | undefined; get selectSources(): Array | undefined; get useHoverSources(): boolean; get useSelectSources(): boolean; use(renderer: IRenderer): void; refreshRenderer(): void; lock(): void; release(): void; suspend(): void; resume(): void; isImage(): boolean; isObject(): boolean; isNature(): boolean; isRelation(): boolean; isComment(): boolean; isRegion(): boolean; isThing(): boolean; isMultiSelect(): boolean; isReadonly(): boolean; protected isType(type: DrawerType): boolean; showShapeLabel(show: boolean, sources?: Array): void; changeShapeAlpha(aplha?: number): void; changeShapeVisible(visible: boolean): void; showSmallShape(show: boolean): void; enableSmallShape(enable: boolean): void; draw(shapes: T | Array): void; remove(shapes: T | T[]): void; clear(): void; dispose(): void; protected get canvas(): ICanvas | undefined; protected get renderer(): IRenderer | undefined; protected get mouse(): IMouse | undefined; protected get keyboard(): IKeyboard | undefined; protected adaptiveStrokeWidth(width: number): number; protected getMinSizeShapeIntersectWithPoint(x: number, y: number, sources?: DrawerType | Array): T | undefined; protected getSelectShapeIntersectWithPoint(x: number, y: number): T | undefined; protected getSelectOrMinSizeShapeIntersectWithPoint(x: number, y: number, sources?: DrawerType | Array): T | undefined; protected triggerRendererEvent = IShape>(event: IRendererEvent): void; }