import { DependencyObject } from "igniteui-react-core";
import { INotifyPropertyChanged, PropertyChangedEventArgs, Type } from "igniteui-react-core";
import { UserAnnotationTarget } from "./UserAnnotationTarget";
import { Brush } from "igniteui-react-core";
import { JsonDictionaryObject } from "igniteui-react-core";
import { FontInfo } from "igniteui-react-core";
import { SeriesViewer } from "./SeriesViewer";
import { UserAnnotationInformation } from "./UserAnnotationInformation";
import { Series } from "./Series";
import { SeriesMatcher } from "./SeriesMatcher";
import { Axis } from "./Axis";
import { AxisMatcher } from "./AxisMatcher";
import { DataAnnotationDisplayMode } from "./DataAnnotationDisplayMode";
import { OverlayTextLocation } from "./OverlayTextLocation";
import { AnnotationAppearanceMode } from "./AnnotationAppearanceMode";
/**
 * @hidden
 */
export declare abstract class UserBaseAnnotation extends DependencyObject implements INotifyPropertyChanged {
    static $t: Type;
    m(a: FontInfo): JsonDictionaryObject;
    o(a: JsonDictionaryObject): FontInfo;
    ay(a: SeriesViewer): void;
    k: UserAnnotationTarget;
    private static aa;
    private ab;
    get an(): string;
    set an(a: string);
    n(): JsonDictionaryObject;
    az(a: JsonDictionaryObject): void;
    static l(a: JsonDictionaryObject): UserBaseAnnotation;
    aq: string;
    ac: string;
    s: boolean;
    bo: Brush;
    bm: Brush;
    bn: Brush;
    y: number;
    x: number;
    z: number;
    p: boolean;
    bk: Brush;
    bl: Brush;
    w: number;
    v: number;
    t: number;
    u: number;
    ag: string;
    r: boolean;
    propertyChanged: (sender: any, e: PropertyChangedEventArgs) => void;
    a1(a: string, b: any, c: any): void;
    q: boolean;
    protected a0(a: string, b: any, c: any): void;
    j(): UserAnnotationInformation;
    static $$p: string[];
}
/**
 * @hidden
 */
export declare class UserPointAnnotation extends UserBaseAnnotation {
    static $t: Type;
    constructor();
    az(a: JsonDictionaryObject): void;
    n(): JsonDictionaryObject;
    targetSeries: Series;
    targetSeriesMatcher: SeriesMatcher;
    ay(a: SeriesViewer): void;
    xValue: number;
    yValue: number;
    static $$p: string[];
}
/**
 * @hidden
 */
export declare class UserAxisAnnotation extends UserBaseAnnotation {
    static $t: Type;
    constructor();
    protected a0(a: string, b: any, c: any): void;
    private bv;
    az(a: JsonDictionaryObject): void;
    n(): JsonDictionaryObject;
    targetAxis: Axis;
    targetAxisMatcher: AxisMatcher;
    ay(a: SeriesViewer): void;
    value: number;
    static $$p: string[];
}
/**
 * @hidden
 */
export declare abstract class UserShapeAnnotation extends UserAxisAnnotation {
    static $t: Type;
    az(a: JsonDictionaryObject): void;
    n(): JsonDictionaryObject;
    valueDisplayMode: DataAnnotationDisplayMode;
    shapeBackground: Brush;
    shapeOutline: Brush;
    shapeThickness: number;
    overlayText: string;
    overlayTextLocation: OverlayTextLocation;
    overlayTextHorizontalMargin: number;
    overlayTextVerticalMargin: number;
    overlayTextHorizontalPadding: number;
    overlayTextVerticalPadding: number;
    overlayTextAngle: number;
    overlayTextColor: Brush;
    overlayTextColorShift: number;
    overlayTextColorMode: AnnotationAppearanceMode;
    overlayTextBackground: Brush;
    overlayTextBackgroundShift: number;
    overlayTextBackgroundMode: AnnotationAppearanceMode;
    overlayTextBorderColor: Brush;
    overlayTextBorderRadius: number;
    overlayTextBorderThickness: number;
    overlayTextBorderShift: number;
    overlayTextBorderMode: AnnotationAppearanceMode;
    overlayTextVisible: boolean;
    private b4;
    get overlayTextStyle(): FontInfo;
    set overlayTextStyle(a: FontInfo);
    static $$p: string[];
}
/**
 * @hidden
 */
export declare class UserSliceAnnotation extends UserShapeAnnotation {
    static $t: Type;
    constructor();
}
/**
 * @hidden
 */
export declare class UserStripAnnotation extends UserShapeAnnotation {
    static $t: Type;
    constructor();
    az(a: JsonDictionaryObject): void;
    n(): JsonDictionaryObject;
    startValue: number;
    startLabel: string;
    startLabelColor: Brush;
    startLabelBackground: Brush;
    startLabelBorderColor: Brush;
    endValue: number;
    endLabel: string;
    endLabelColor: Brush;
    endLabelBackground: Brush;
    endLabelBorderColor: Brush;
    startValueDisplayMode: DataAnnotationDisplayMode;
    endValueDisplayMode: DataAnnotationDisplayMode;
    static $$p: string[];
}
