import { ESurfaceType } from "../../../types/SurfaceType";
import { SCRTBrush } from "../../../types/TSciChart";
import { ModifierMouseArgs } from "../../ChartModifiers/ModifierMouseArgs";
import { BrushCache } from "../../Drawing/BrushCache";
import { Pen2DCache } from "../../Drawing/Pen2DCache";
import { SciChartSurface } from "../SciChartSurface";
import { TDpiChangedEventArgs } from "../TextureManager/DpiHelper";
import { EDraggingGripPoint, IAnnotationBaseOptions } from "./AnnotationBase";
import { EAnnotationType } from "./IAnnotation";
import { RenderContextAnnotationBase } from "./RenderContextAnnotationBase";
export interface IArcAnnotationBaseOptions extends IAnnotationBaseOptions {
    stroke?: string;
    strokeThickness?: number;
    strokeDashArray?: number[];
    isLineMode?: boolean;
    fill?: string;
}
export declare abstract class ArcAnnotationBase extends RenderContextAnnotationBase {
    abstract readonly type: EAnnotationType;
    abstract readonly surfaceTypes: ESurfaceType[];
    protected dragPointsProperty: readonly EDraggingGripPoint[];
    protected strokePenCache: Pen2DCache;
    protected fillBrushCache: BrushCache;
    protected arcAnnotationBorders: {
        x1: number;
        x2: number;
        y1: number;
        y2: number;
        xCenter: number;
        yCenter: number;
    };
    private strokeThicknessProperty;
    private strokeDashArrayProperty;
    private strokeProperty;
    private isLineModeProperty;
    private fillProperty;
    constructor(options?: IArcAnnotationBaseOptions);
    get stroke(): string;
    set stroke(htmlColorCode: string);
    get strokeThickness(): number;
    set strokeThickness(value: number);
    get strokeDashArray(): number[];
    set strokeDashArray(value: number[]);
    get isLineMode(): boolean;
    set isLineMode(value: boolean);
    get fill(): string;
    set fill(colorCode: string);
    delete(): void;
    onAttach(scs: SciChartSurface): void;
    onDpiChanged(args: TDpiChangedEventArgs): void;
    toJSON(): {
        type: EAnnotationType;
        options: Required<Omit<IAnnotationBaseOptions, never>>;
    };
    onDragStarted(args: ModifierMouseArgs): boolean;
    protected notifyPropertyChanged(propertyName: string): void;
    protected getBrush(): SCRTBrush;
    protected getDrawMode(): number;
    protected setArcAnnotationBorders(x1: number, x2: number, xCenter: number, y1: number, y2: number, yCenter: number): void;
    protected getArcAnnotationBorders(translateToCanvas?: boolean, multiplier?: number): {
        x1: number;
        x2: number;
        y1: number;
        y2: number;
        xCenter: number;
        yCenter: number;
    };
    protected svgStringArcAdornerTemplate(x1: number, y1: number, x2: number, y2: number, xCenter: number, yCenter: number): string;
    protected updateAdornerInner(): void;
    protected getViewportHeight(): number;
    protected normalizeAnglesAndHitTest(startAngleInput: number, endAngleInput: number, testAngleInput?: number): {
        startAngle: number;
        endAngle: number;
        isHit: boolean;
    };
    protected isDataValueMode(): boolean;
}
