import { IgrAxis } from "./igr-axis";
import { IgrSeries, IIgrSeriesProps } from "./igr-series";
import { IgrUserAnnotationCollection } from "./igr-user-annotation-collection";
import { IgrUserAnnotationInformationEventArgs } from "./igr-user-annotation-information-event-args";
import { IgrUserAxisAnnotationStylingEventArgs } from "./igr-user-axis-annotation-styling-event-args";
import { IgrUserSliceAnnotationStylingEventArgs } from "./igr-user-slice-annotation-styling-event-args";
import { IgrUserStripAnnotationStylingEventArgs } from "./igr-user-strip-annotation-styling-event-args";
import { IgrUserPointAnnotationStylingEventArgs } from "./igr-user-point-annotation-styling-event-args";
import { IgrUserAnnotationInformation } from "./igr-user-annotation-information";
import { UserAnnotationLayer } from "./UserAnnotationLayer";
/**
 * Represents an user annotation layer that can define UserPointAnnotation, UserSliceAnnotation, UserStripAnnotation
*/
export declare class IgrUserAnnotationLayer extends IgrSeries<IIgrUserAnnotationLayerProps> {
    protected createImplementation(): UserAnnotationLayer;
    constructor(props: IIgrUserAnnotationLayerProps);
    /**
                             * @hidden
                             */
    get i(): UserAnnotationLayer;
    private _annotations;
    /**
     * Gets user annotations
    */
    get annotations(): IgrUserAnnotationCollection;
    set annotations(v: IgrUserAnnotationCollection);
    get isAnnotationLayer(): boolean;
    get isUserAnnotationLayer(): boolean;
    /**
     * Gets if the series should appear in any legends.
    */
    get isUsableInLegend(): boolean;
    findByName(name: string): any;
    loadAnnotationsFromJson(jsonString: string): void;
    saveAnnotationsToJson(): string;
    cancelAnnotationFlow(annotationFlowID: string): void;
    finishAnnotationFlow(info: IgrUserAnnotationInformation): void;
    bindAxes(axes: IgrAxis[]): void;
    bindSeries(series: IgrSeries[]): void;
    private _userAnnotationInformationRequested;
    private _userAnnotationInformationRequested_wrapped;
    get userAnnotationInformationRequested(): (s: IgrUserAnnotationLayer, e: IgrUserAnnotationInformationEventArgs) => void;
    set userAnnotationInformationRequested(ev: (s: IgrUserAnnotationLayer, e: IgrUserAnnotationInformationEventArgs) => void);
    private _stylingAxisAnnotation;
    private _stylingAxisAnnotation_wrapped;
    /**
     * Event raised when updating style of UserAxisAnnotation
    */
    get stylingAxisAnnotation(): (s: IgrUserAnnotationLayer, e: IgrUserAxisAnnotationStylingEventArgs) => void;
    set stylingAxisAnnotation(ev: (s: IgrUserAnnotationLayer, e: IgrUserAxisAnnotationStylingEventArgs) => void);
    private _stylingSliceAnnotation;
    private _stylingSliceAnnotation_wrapped;
    /**
     * Event raised when updating style of UserSliceAnnotation
    */
    get stylingSliceAnnotation(): (s: IgrUserAnnotationLayer, e: IgrUserSliceAnnotationStylingEventArgs) => void;
    set stylingSliceAnnotation(ev: (s: IgrUserAnnotationLayer, e: IgrUserSliceAnnotationStylingEventArgs) => void);
    private _stylingStripAnnotation;
    private _stylingStripAnnotation_wrapped;
    /**
     * Event raised when updating style of UserStripAnnotation
    */
    get stylingStripAnnotation(): (s: IgrUserAnnotationLayer, e: IgrUserStripAnnotationStylingEventArgs) => void;
    set stylingStripAnnotation(ev: (s: IgrUserAnnotationLayer, e: IgrUserStripAnnotationStylingEventArgs) => void);
    private _stylingPointAnnotation;
    private _stylingPointAnnotation_wrapped;
    /**
     * Event raised when updating style of UserPointAnnotation
    */
    get stylingPointAnnotation(): (s: IgrUserAnnotationLayer, e: IgrUserPointAnnotationStylingEventArgs) => void;
    set stylingPointAnnotation(ev: (s: IgrUserAnnotationLayer, e: IgrUserPointAnnotationStylingEventArgs) => void);
}
export interface IIgrUserAnnotationLayerProps extends IIgrSeriesProps {
    userAnnotationInformationRequested?: (s: IgrUserAnnotationLayer, e: IgrUserAnnotationInformationEventArgs) => void;
    /**
     * Event raised when updating style of UserAxisAnnotation
    */
    stylingAxisAnnotation?: (s: IgrUserAnnotationLayer, e: IgrUserAxisAnnotationStylingEventArgs) => void;
    /**
     * Event raised when updating style of UserSliceAnnotation
    */
    stylingSliceAnnotation?: (s: IgrUserAnnotationLayer, e: IgrUserSliceAnnotationStylingEventArgs) => void;
    /**
     * Event raised when updating style of UserStripAnnotation
    */
    stylingStripAnnotation?: (s: IgrUserAnnotationLayer, e: IgrUserStripAnnotationStylingEventArgs) => void;
    /**
     * Event raised when updating style of UserPointAnnotation
    */
    stylingPointAnnotation?: (s: IgrUserAnnotationLayer, e: IgrUserPointAnnotationStylingEventArgs) => void;
}
