import { Point } from '../utils/point'; import { Rect } from '../utils/rect'; export interface ShapeConstructor { new (drawOptions: DrawingOptions, viewer: OpenSeadragon.Viewer): BaseShape; } export interface DrawingOptions { /** * 'rgb(r,g,b)' | 'rgba(r,g,b,a)' */ color: string; lineWidth: number; fill: string; } export declare abstract class BaseShape { protected drawingOptions: DrawingOptions; protected viewer: OpenSeadragon.Viewer; protected _isDisposed: boolean; protected _isDrawing: boolean; id: string; hidden: boolean; isHighlighted: boolean; get isDisposed(): boolean; get isDrawing(): boolean; abstract readonly boundingBox: Rect; constructor(drawingOptions: DrawingOptions, viewer: OpenSeadragon.Viewer); dispose(): void; updateDrawingOptions(options: Partial): void; draw(context2d: CanvasRenderingContext2D): void; startDrawing(): void; isPointOver(localPoint: Point, context2d: CanvasRenderingContext2D): boolean; protected toViewerCoords(point: Point): import("openseadragon").Point; protected setDrawOptions(context2d: CanvasRenderingContext2D): void; protected finishDrawing(): void; abstract toPath2D(): Path2D; abstract onMouseDown(point: Point): void; abstract onMouseMove(point: Point): void; abstract onMouseUp(point?: Point): void; } //# sourceMappingURL=base-shape.d.ts.map