import { IDesignerCanvas } from '../IDesignerCanvas.js';
import { IExtensionManager } from './IExtensionManger.js';
import { OverlayLayerView } from '../overlayLayerView.js';
import { OverlayLayer } from './OverlayLayer.js';
import { IPoint } from '../../../../interfaces/IPoint.js';
export declare abstract class AbstractExtensionBase {
    protected overlays: SVGElement[];
    protected overlayLayerView: OverlayLayerView;
    protected extensionManager: IExtensionManager;
    protected designerCanvas: IDesignerCanvas;
    constructor(extensionManager: IExtensionManager, designerCanvas: IDesignerCanvas);
    private _backup;
    protected _valuesHaveChanges(...values: any[]): boolean;
    protected _removeAllOverlays(): void;
    protected _addOverlay(element: SVGGraphicsElement, overlayLayer?: OverlayLayer): void;
    protected _drawGroup(className?: string, group?: SVGGElement, overlayLayer?: OverlayLayer): SVGGElement;
    protected _drawLine(x1: number, y1: number, x2: number, y2: number, className?: string, line?: SVGLineElement, overlayLayer?: OverlayLayer): SVGLineElement;
    protected _drawCircle(x: number, y: number, radius: number, className?: string, circle?: SVGCircleElement, overlayLayer?: OverlayLayer): SVGCircleElement;
    protected _drawRect(x: number, y: number, w: number, h: number, className?: string, rect?: SVGRectElement, overlayLayer?: OverlayLayer): SVGRectElement;
    protected _drawComplexRect(points: [IPoint, IPoint, IPoint, IPoint], className?: string, rect?: SVGPathElement, overlayLayer?: OverlayLayer): SVGPathElement;
    protected _drawPath(data: string, className?: string, path?: SVGPathElement, overlayLayer?: OverlayLayer): SVGPathElement;
    protected _drawText(text: string, x: number, y: number, className?: string, textEl?: SVGTextElement, overlayLayer?: OverlayLayer): SVGTextElement;
    protected _drawHTML(html: string | HTMLElement, x: number, y: number, w: number, h: number, className?: string, htmlObj?: SVGForeignObjectElement, overlayLayer?: OverlayLayer): SVGForeignObjectElement;
    protected _drawTextWithBackground(text: string, x: number, y: number, backgroundColor: string, className?: string, existingEls?: [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement], overlayLayer?: OverlayLayer): [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement];
    protected _drawTransformedRect(points: DOMQuad, className?: string, path?: SVGPathElement, overlayLayer?: OverlayLayer): SVGPathElement;
}
