import type { IHandler, IMouseMoveEvent, IMouseUpEvent, IRelation, IRelationDrawer } from '../../abstraction'; import { DrawerType, ShapeType } from '../../abstraction'; import { DrawerBase } from './base'; export declare class RelationDrawer extends DrawerBase implements IRelationDrawer { private _currentStart?; private _currentEnd?; private _startX; private _startY; protected _mouseMoveBound: IHandler; protected _mouseUpBound: IHandler; constructor(relations?: Array); get type(): DrawerType; get shapeType(): ShapeType; get hoverSources(): Array; get useHoverSources(): boolean; get selectSources(): Array | undefined; get useSelectSources(): boolean; isBase(): boolean; isDragable(): boolean; isClickable(): boolean; isSelectable(): boolean; lock(): void; release(): void; clear(): void; remove(shapes: IRelation | IRelation[]): void; protected handleMouseMove(event: IMouseMoveEvent): void; protected handleMouseUp(event: IMouseUpEvent): void; private startRelation; private cancelRelation; private completeRelation; private createShape; private hasRelation; private reset; }