import { IgPoint } from "igniteui-react-core";
import { OverlayTextLocation } from "./OverlayTextLocation";
import { AnnotationAppearanceMode } from "./AnnotationAppearanceMode";
import { IgrOverlayTextUpdatingEventArgs } from "./igr-overlay-text-updating-event-args";
import { IgrDataAnnotationItem } from "./igr-data-annotation-item";
import { IgrDataAnnotationInfo } from "./igr-data-annotation-info";
import { IgrDataAnnotationAxisLayer, IIgrDataAnnotationAxisLayerProps } from "./igr-data-annotation-axis-layer";
import { DataAnnotationShapeLayer } from "./DataAnnotationShapeLayer";
/**
 * Represents a base annotation layer that renders shapes defined by derived data annotation, e.g. line, strip, slice, rect, band
*/
export declare abstract class IgrDataAnnotationShapeLayer<P extends IIgrDataAnnotationShapeLayerProps = IIgrDataAnnotationShapeLayerProps> extends IgrDataAnnotationAxisLayer<P> {
    /**
                                 * @hidden
                                 */
    get i(): DataAnnotationShapeLayer;
    constructor(props: P);
    /**
     * Gets or sets whether to draw shape of annotations in the plot area
    */
    get annotationShapeVisible(): boolean;
    set annotationShapeVisible(v: boolean);
    /**
     * Gets or sets whether the data items of the annotations use world coordinates (0.0 - 1.0) or they default to using axes coordinates (data indexes for category axis or data values for numeric axis).
    */
    get itemsUseWorldCoordinates(): boolean;
    set itemsUseWorldCoordinates(v: boolean);
    /**
     * Gets or sets location of the overlay text in relation to shape of data annotation.
    */
    get overlayTextLocation(): OverlayTextLocation;
    set overlayTextLocation(v: OverlayTextLocation);
    /**
     * Gets or sets the horizontal margin of the overlay text in relation to shape of data annotation.
    */
    get overlayTextHorizontalMargin(): number;
    set overlayTextHorizontalMargin(v: number);
    /**
     * Gets or sets the vertical margin of the overlay text in relation to shape of data annotation.
    */
    get overlayTextVerticalMargin(): number;
    set overlayTextVerticalMargin(v: number);
    /**
     * Gets or sets the horizontal padding of the overlay text in relation to shape of data annotation.
    */
    get overlayTextHorizontalPadding(): number;
    set overlayTextHorizontalPadding(v: number);
    /**
     * Gets or sets the vertical padding of the overlay text in relation to shape of data annotation.
    */
    get overlayTextVerticalPadding(): number;
    set overlayTextVerticalPadding(v: number);
    /**
     * Gets or sets the angle rotation (in degrees) of the overlay text in relation to shape of data annotation.
    */
    get overlayTextAngle(): number;
    set overlayTextAngle(v: number);
    /**
     * Gets or sets the color the overlay text.
    */
    get overlayTextColor(): string;
    set overlayTextColor(v: string);
    /**
     * Gets or sets the background the overlay text.
    */
    get overlayTextBackground(): string;
    set overlayTextBackground(v: string);
    /**
     * Gets or sets the border stroke of the overlay text.
    */
    get overlayTextBorderColor(): string;
    set overlayTextBorderColor(v: string);
    /**
     * Gets or sets the border corner of the overlay text.
    */
    get overlayTextBorderRadius(): number;
    set overlayTextBorderRadius(v: number);
    /**
     * Gets or sets the border thickness of the overlay text.
    */
    get overlayTextBorderThickness(): number;
    set overlayTextBorderThickness(v: number);
    /**
     * Gets or sets whether the overlay text is visible in shape of data annotation
    */
    get overlayTextVisible(): boolean;
    set overlayTextVisible(v: boolean);
    /**
     * Gets or sets name of data column with text that will be displayed as overlay text.
    */
    get overlayTextMemberPath(): string;
    set overlayTextMemberPath(v: string);
    /**
     * Gets or sets the text that will be displayed as the overlay annotation.
    */
    get overlayText(): string;
    set overlayText(v: string);
    /**
     * Gets or sets the shift of the overlay text color based on OverlayTextColorMode. Value must range between -1.0 to 1.0, where 0 means no color shift.
    */
    get overlayTextColorShift(): number;
    set overlayTextColorShift(v: number);
    /**
     * Gets or sets the mode used for shifting the background of overlay text based on the target series.
    */
    get overlayTextColorMode(): AnnotationAppearanceMode;
    set overlayTextColorMode(v: AnnotationAppearanceMode);
    /**
     * Gets or sets whether the overlay text color matches brush of the layer
    */
    get overlayTextColorMatchLayer(): boolean;
    set overlayTextColorMatchLayer(v: boolean);
    /**
     * Gets or sets the shift of the overlay background based on OverlayTextBackgroundMode. Value must range between -1.0 to 1.0, where 0 means no color shift.
    */
    get overlayTextBackgroundShift(): number;
    set overlayTextBackgroundShift(v: number);
    /**
     * Gets or sets the mode used for shifting the background of overlay text based on the target series.
    */
    get overlayTextBackgroundMode(): AnnotationAppearanceMode;
    set overlayTextBackgroundMode(v: AnnotationAppearanceMode);
    /**
     * Gets or sets whether the overlay text background matches brush of the layer
    */
    get overlayTextBackgroundMatchLayer(): boolean;
    set overlayTextBackgroundMatchLayer(v: boolean);
    /**
     * Gets or sets the shift of the overlay border based on OverlayTextBorderMode. Value must range between -1.0 to 1.0, where 0 means no color shift.
    */
    get overlayTextBorderShift(): number;
    set overlayTextBorderShift(v: number);
    /**
     * Gets or sets the mode used for shifting the border of overlay text based on the target series.
    */
    get overlayTextBorderMode(): AnnotationAppearanceMode;
    set overlayTextBorderMode(v: AnnotationAppearanceMode);
    /**
     * Gets or sets whether the overlay text border matches brush of the layer
    */
    get overlayTextBorderMatchLayer(): boolean;
    set overlayTextBorderMatchLayer(v: boolean);
    /**
     * Gets or Sets the style to use for the display text.
    */
    get overlayTextStyle(): string;
    set overlayTextStyle(v: string);
    /**
     * Gets whether the annotation layer is currently targeting horizontal axis.
    */
    get isTargetingHorizontalAxis(): boolean;
    set isTargetingHorizontalAxis(v: boolean);
    /**
     * Converts world coordinate (0.0 - 1.0) to pixel coordinate that is relative to component's size
    
    */
    fromWorld(world: IgPoint): IgPoint;
    /**
     * Converts world X coordinate (0.0 - 1.0) to pixel coordinate that is relative to component's width
    
    */
    fromWorldX(x: number): number;
    /**
     * Converts world Y coordinate (0.0 - 1.0) to pixel coordinate that is relative to component's height
    
    */
    fromWorldY(y: number): number;
    /**
     * Converts pixel coordinate (relative to component's size) to world coordinate (0.0 - 1.0)
    
    */
    toWorld(pixel: IgPoint): IgPoint;
    /**
     * Converts pixel X coordinate (relative to component's width) to world coordinate (0.0 - 1.0)
    
    */
    toWorldX(x: number): number;
    /**
     * Converts pixel Y coordinate (relative to component's height) to world coordinate (0.0 - 1.0)
    
    */
    toWorldY(y: number): number;
    private _stylingOverlayText;
    private _stylingOverlayText_wrapped;
    /**
     * Event raised when updating style of overlay text
    */
    get stylingOverlayText(): (s: IgrDataAnnotationShapeLayer, e: IgrOverlayTextUpdatingEventArgs) => void;
    set stylingOverlayText(ev: (s: IgrDataAnnotationShapeLayer, e: IgrOverlayTextUpdatingEventArgs) => void);
    private _stylingShapeAnnotation;
    private _stylingShapeAnnotation_wrapped;
    /**
     * Event raised when updating style of annotation
    */
    get stylingShapeAnnotation(): (s: IgrDataAnnotationShapeLayer, e: IgrDataAnnotationItem) => void;
    set stylingShapeAnnotation(ev: (s: IgrDataAnnotationShapeLayer, e: IgrDataAnnotationItem) => void);
    private _stylingAxisAnnotation;
    private _stylingAxisAnnotation_wrapped;
    /**
     * Event raised when updating style of annotation
    */
    get stylingAxisAnnotation(): (s: IgrDataAnnotationShapeLayer, e: IgrDataAnnotationInfo) => void;
    set stylingAxisAnnotation(ev: (s: IgrDataAnnotationShapeLayer, e: IgrDataAnnotationInfo) => void);
}
export interface IIgrDataAnnotationShapeLayerProps extends IIgrDataAnnotationAxisLayerProps {
    /**
     * Gets or sets whether to draw shape of annotations in the plot area
    */
    annotationShapeVisible?: boolean | string;
    /**
     * Gets or sets whether the data items of the annotations use world coordinates (0.0 - 1.0) or they default to using axes coordinates (data indexes for category axis or data values for numeric axis).
    */
    itemsUseWorldCoordinates?: boolean | string;
    /**
     * Gets or sets location of the overlay text in relation to shape of data annotation.
    */
    overlayTextLocation?: OverlayTextLocation | string;
    /**
     * Gets or sets the horizontal margin of the overlay text in relation to shape of data annotation.
    */
    overlayTextHorizontalMargin?: number | string;
    /**
     * Gets or sets the vertical margin of the overlay text in relation to shape of data annotation.
    */
    overlayTextVerticalMargin?: number | string;
    /**
     * Gets or sets the horizontal padding of the overlay text in relation to shape of data annotation.
    */
    overlayTextHorizontalPadding?: number | string;
    /**
     * Gets or sets the vertical padding of the overlay text in relation to shape of data annotation.
    */
    overlayTextVerticalPadding?: number | string;
    /**
     * Gets or sets the angle rotation (in degrees) of the overlay text in relation to shape of data annotation.
    */
    overlayTextAngle?: number | string;
    /**
     * Gets or sets the color the overlay text.
    */
    overlayTextColor?: string;
    /**
     * Gets or sets the background the overlay text.
    */
    overlayTextBackground?: string;
    /**
     * Gets or sets the border stroke of the overlay text.
    */
    overlayTextBorderColor?: string;
    /**
     * Gets or sets the border corner of the overlay text.
    */
    overlayTextBorderRadius?: number | string;
    /**
     * Gets or sets the border thickness of the overlay text.
    */
    overlayTextBorderThickness?: number | string;
    /**
     * Gets or sets whether the overlay text is visible in shape of data annotation
    */
    overlayTextVisible?: boolean | string;
    /**
     * Gets or sets name of data column with text that will be displayed as overlay text.
    */
    overlayTextMemberPath?: string;
    /**
     * Gets or sets the text that will be displayed as the overlay annotation.
    */
    overlayText?: string;
    /**
     * Gets or sets the shift of the overlay text color based on OverlayTextColorMode. Value must range between -1.0 to 1.0, where 0 means no color shift.
    */
    overlayTextColorShift?: number | string;
    /**
     * Gets or sets the mode used for shifting the background of overlay text based on the target series.
    */
    overlayTextColorMode?: AnnotationAppearanceMode | string;
    /**
     * Gets or sets whether the overlay text color matches brush of the layer
    */
    overlayTextColorMatchLayer?: boolean | string;
    /**
     * Gets or sets the shift of the overlay background based on OverlayTextBackgroundMode. Value must range between -1.0 to 1.0, where 0 means no color shift.
    */
    overlayTextBackgroundShift?: number | string;
    /**
     * Gets or sets the mode used for shifting the background of overlay text based on the target series.
    */
    overlayTextBackgroundMode?: AnnotationAppearanceMode | string;
    /**
     * Gets or sets whether the overlay text background matches brush of the layer
    */
    overlayTextBackgroundMatchLayer?: boolean | string;
    /**
     * Gets or sets the shift of the overlay border based on OverlayTextBorderMode. Value must range between -1.0 to 1.0, where 0 means no color shift.
    */
    overlayTextBorderShift?: number | string;
    /**
     * Gets or sets the mode used for shifting the border of overlay text based on the target series.
    */
    overlayTextBorderMode?: AnnotationAppearanceMode | string;
    /**
     * Gets or sets whether the overlay text border matches brush of the layer
    */
    overlayTextBorderMatchLayer?: boolean | string;
    /**
     * Gets or Sets the style to use for the display text.
    */
    overlayTextStyle?: string;
    /**
     * Gets whether the annotation layer is currently targeting horizontal axis.
    */
    isTargetingHorizontalAxis?: boolean | string;
    /**
     * Event raised when updating style of overlay text
    */
    stylingOverlayText?: (s: IgrDataAnnotationShapeLayer, e: IgrOverlayTextUpdatingEventArgs) => void;
    /**
     * Event raised when updating style of annotation
    */
    stylingShapeAnnotation?: (s: IgrDataAnnotationShapeLayer, e: IgrDataAnnotationItem) => void;
    /**
     * Event raised when updating style of annotation
    */
    stylingAxisAnnotation?: (s: IgrDataAnnotationShapeLayer, e: IgrDataAnnotationInfo) => void;
}
