import type { CoordinateCalculatorBase } from "../../Numerics/CoordinateCalculators/CoordinateCalculatorBase";
import type { SciChartSurfaceBase } from "../SciChartSurfaceBase";
import { EAnnotationType } from "./types/EAnnotationType";
import type { IDomAnnotationOptions } from "./DomAnnotationBase";
import { DomAnnotationBase } from "./DomAnnotationBase";
import { Size } from "../../../types/Size";
import { ESurfaceType } from "../../../types/SurfaceType";
/**
 * Options passed to the constructor of a {@link HtmlCustomAnnotation}, used to configure it at instantiation time
 */
export interface IHtmlCustomAnnotationOptions extends IDomAnnotationOptions {
}
/**
 * An annotation which exposes an html element placed at the defined coordinates, which you can fill with any html.
 */
export declare class HtmlCustomAnnotation extends DomAnnotationBase {
    readonly type: EAnnotationType;
    readonly isSvgAnnotation: boolean;
    readonly isDomAnnotation: boolean;
    readonly surfaceTypes: ESurfaceType[];
    protected htmlElementProperty: HTMLElement;
    protected layerRootProperty: HTMLElement;
    protected resizeObserver: ResizeObserver;
    /**
     * Creates an instance of an HtmlCustomAnnotation
     * @param options Optional parameters of type {@link IHtmlCustomAnnotationOptions} used to configure the annotation on construction
     */
    constructor(options?: IHtmlCustomAnnotationOptions);
    onAttach(scs: SciChartSurfaceBase): void;
    onDetach(): void;
    get htmlElement(): HTMLElement;
    /**
     * 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 root element having the whole chart size
     * @param yCoordSvgTrans Y-coordinate translation which is needed to use root element having the whole chart size
     */
    update(xCalc: CoordinateCalculatorBase, yCalc: CoordinateCalculatorBase, xCoordSvgTrans: number, yCoordSvgTrans: number): void;
    delete(): void;
    /**
     * Called to create the Dom Element right before it is added to the parent chart
     */
    protected create(): void;
    /**
     * Gets the {@link HTMLElement} at the root of this annotation
     */
    protected get layerRoot(): HTMLElement;
    protected attachToLayerRoot(): void;
    protected selectLayerRoot(): void;
    protected notifyPropertyChanged(propertyName: string): void;
    protected getSize(): Size;
    private measure;
}
