import type { CoordinateCalculatorBase } from "../../Numerics/CoordinateCalculators/CoordinateCalculatorBase";
import type { EAnnotationClippingMode } from "../../../types/AnnotationClippingMode";
import type { IDomAnnotationOptions } from "./DomAnnotationBase";
import { DomAnnotationBase } from "./DomAnnotationBase";
/**
 * Options passed to the constructor of a {@link SvgAnnotationBase}, used to configure it at instantiation time
 */
export interface ISvgAnnotationBaseOptions extends IDomAnnotationOptions {
}
/**
 * The Base class for an {@link AnnotationBase | Annotation} which draws using an HTML5 SVG canvas
 */
export declare abstract class SvgAnnotationBase extends DomAnnotationBase {
    /** @inheritDoc */
    readonly isSvgAnnotation: boolean;
    protected nextSibling: Element;
    protected svgDOMRect: DOMRect;
    private svgProperty;
    private svgRootProperty;
    /**
     * Creates an instance of an SvgAnnotationbase
     * @param options Optional parameters of type {@link ISvgAnnotationBaseOptions} used to configure the annotation on construction
     */
    protected constructor(options?: ISvgAnnotationBaseOptions);
    /** @inheritDoc */
    onDetach(): void;
    /**
     * Updates the annotation position, with the {@link CoordinateCalculatorBase | Coordinate Calculators} passed in
     * @param xCalc The XAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation
     * @param yCalc The YAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation
     * @param xCoordSvgTrans X-coordinate translation which is needed to use SVG canvas having the whole chart size
     * @param yCoordSvgTrans Y-coordinate translation which is needed to use SVG canvas having the whole chart size
     */
    update(xCalc: CoordinateCalculatorBase, yCalc: CoordinateCalculatorBase, xCoordSvgTrans: number, yCoordSvgTrans: number): void;
    /** @inheritDoc */
    delete(): void;
    get svg(): SVGElement;
    protected getSvgDomRect(): DOMRect;
    protected clear(): void;
    /**
     * Called to create the SVG Dom Element right before it is added to the parent chart
     * @param xCalc The XAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation
     * @param yCalc The YAxis {@link CoordinateCalculatorBase | CoordinateCalculator} applied to this annotation
     * @param xCoordSvgTrans X-coordinate translation which is needed to use SVG canvas having the whole chart size
     * @param yCoordSvgTrans Y-coordinate translation which is needed to use SVG canvas having the whole chart size
     */
    protected create(xCalc: CoordinateCalculatorBase, yCalc: CoordinateCalculatorBase, xCoordSvgTrans: number, yCoordSvgTrans: number): void;
    /**
     * Gets the {@link SVGSVGElement | SVG Element} at the root of this annotation
     */
    protected get svgRoot(): SVGSVGElement;
    protected selectLayerRoot(): void;
    protected setSvgAttribute(attributeName: string, value: number): void;
    protected setSvg(svg: SVGElement): void;
    protected applyClipping(svgString: string, clipping: EAnnotationClippingMode | string): string;
    protected notifyPropertyChanged(propertyName: string): void;
    protected getSize(): {
        width: number;
        height: number;
    };
}
