import type { IAxisMarkerAnnotationOptions } from "../../Charting/Visuals/Annotations/AxisMarkerAnnotation";
import type { IBoxAnnotationOptions } from "../../Charting/Visuals/Annotations/BoxAnnotation";
import type { ICustomAnnotationOptions } from "../../Charting/Visuals/Annotations/CustomAnnotation";
import type { IHtmlCustomAnnotationOptions } from "../../Charting/Visuals/Annotations/HtmlCustomAnnotation";
import type { IHtmlTextAnnotationOptions } from "../../Charting/Visuals/Annotations/HtmlTextAnnotation";
import { EAnnotationType } from "../../Charting/Visuals/Annotations/types/EAnnotationType";
import type { ILineAnnotationOptions } from "../../Charting/Visuals/Annotations/LineAnnotation";
import type { ILineArrowAnnotationOptions } from "../../Charting/Visuals/Annotations/LineArrowAnnotation";
import type { INativeTextAnnotationOptions } from "../../Charting/Visuals/Annotations/NativeTextAnnotation";
import type { IPolarPointerAnnotationOptions } from "../../Charting/Visuals/Annotations/PolarPointerAnnotation";
import type { ISvgLineAnnotationOptions } from "../../Charting/Visuals/Annotations/SvgLineAnnotation";
import type { ITextAnnotationOptions } from "../../Charting/Visuals/Annotations/TextAnnotation";
import type { ICompositeAnnotationOptions } from "../../Charting/Visuals/Annotations/CompositeAnnotation";
/** Definition of an annotation, comprising a {@link EAnnotationType} and the relevant options  */
export type TAnnotationDefinition = {
    type: EAnnotationType.RenderContextAxisMarkerAnnotation;
    options?: IAxisMarkerAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextBoxAnnotation;
    options?: IBoxAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextHorizontalLineAnnotation;
    options?: ILineAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextLineAnnotation;
    options?: ILineAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextVerticalLineAnnotation;
    options?: ILineAnnotationOptions;
} | {
    type: EAnnotationType.SVGTextAnnotation;
    options?: ITextAnnotationOptions;
} | {
    type: EAnnotationType.SVGCustomAnnotation;
    options?: ICustomAnnotationOptions;
} | {
    type: EAnnotationType.SVGPolarPointerAnnotation;
    options?: IPolarPointerAnnotationOptions;
} | {
    type: EAnnotationType.HtmlCustomAnnotation;
    options?: IHtmlCustomAnnotationOptions;
} | {
    type: EAnnotationType.HtmlTextAnnotation;
    options?: IHtmlTextAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextLineArrowAnnotation;
    options?: ILineArrowAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextNativeTextAnnotation;
    options?: INativeTextAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextArcAnnotation;
    options?: ILineAnnotationOptions;
} | {
    type: EAnnotationType.RenderContextPolarArcAnnotation;
    options?: ILineAnnotationOptions;
} | {
    type: EAnnotationType.SvgLineAnnotation;
    options?: ISvgLineAnnotationOptions;
} | {
    type: EAnnotationType.CompositeAnnotation;
    options?: ICompositeAnnotationOptions;
};
