import { BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent';
import { OverlayLayer } from './extensions/OverlayLayer.js';
import { ServiceContainer } from '../../services/ServiceContainer.js';
export declare class OverlayLayerView extends BaseCustomWebComponentConstructorAppend {
    static readonly template: HTMLTemplateElement;
    static readonly style: CSSStyleSheet;
    static readonly is = "node-projects-overlay-layer-view";
    private _serviceContainer;
    private _svg;
    private _gBackground;
    private _gNormal;
    private _gForeground;
    private _defs;
    private _id;
    constructor(serviceContainer: ServiceContainer);
    private _initialize;
    backgroundFragment: DocumentFragment;
    foregroundFragment: DocumentFragment;
    normalFragment: DocumentFragment;
    batchCount: number;
    startBatch(): void;
    endBatch(): void;
    addOverlay(overlaySource: string, element: SVGGraphicsElement, overlayLayer?: OverlayLayer): void;
    removeOverlay(element: SVGElement): void;
    removeAllNodesWithClass(className: string): void;
    removeAllOverlays(): void;
    createPoint(): DOMPointInit;
    drawGroup(overlaySource: string, className?: string, group?: SVGGElement, overlayLayer?: OverlayLayer): SVGGElement;
    drawLine(overlaySource: string, x1: number, y1: number, x2: number, y2: number, className?: string, line?: SVGLineElement, overlayLayer?: OverlayLayer): SVGLineElement;
    drawCircle(overlaySource: string, x: number, y: number, radius: number, className?: string, circle?: SVGCircleElement, overlayLayer?: OverlayLayer): SVGCircleElement;
    drawRect(overlaySource: string, x: number, y: number, w: number, h: number, className?: string, rect?: SVGRectElement, overlayLayer?: OverlayLayer): SVGRectElement;
    drawPath(overlaySource: string, data: string, className?: string, path?: SVGPathElement, overlayLayer?: OverlayLayer): SVGPathElement;
    drawText(overlaySource: string, text: string, x: number, y: number, className?: string, textEl?: SVGTextElement, overlayLayer?: OverlayLayer): SVGTextElement;
    drawHTML(overlaySource: string, html: HTMLElement | string, x: number, y: number, w: number, h: number, className?: string, htmlObj?: SVGForeignObjectElement, overlayLayer?: OverlayLayer): SVGForeignObjectElement;
    drawTextWithBackground(overlaySource: string, text: string, x: number, y: number, backgroundColor: string, className?: string, existingEls?: [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement], overlayLayer?: OverlayLayer): [SVGFilterElement, SVGFEFloodElement, SVGTextElement, SVGTextElement];
}
