import * as React from 'react';
import { IgRect } from "igniteui-react-core/ES5/IgRect";
import { HorizontalAlignment } from "igniteui-react-core/ES5/HorizontalAlignment";
import { UnknownValuePlotting } from "igniteui-react-core/ES5/UnknownValuePlotting";
import { TrendLineType } from "igniteui-react-core/ES5/TrendLineType";
import { ChartSeriesEventArgs } from './igr-chart-series-event-args';
import { DomainChart } from "./DomainChart";
import { DomainChartSeriesPointerEventArgs } from './igr-domain-chart-series-pointer-event-args';
import { MarkerTypeCollection } from './igr-marker-type-collection';
import { ToolTipType } from "igniteui-react-charts/ES5/ToolTipType";
import { CrosshairsDisplayMode } from "igniteui-react-charts/ES5/CrosshairsDisplayMode";
import { CalloutStyleUpdatingEventArgs } from "igniteui-react-charts/ES5/igr-callout-style-updating-event-args";
import { IChartTooltipProps } from "igniteui-react-core/ES5/igr-chart-tooltip-props";
export declare abstract class IgrDomainChart<P extends IIgrDomainChartProps = IIgrDomainChartProps> extends React.Component<P, {}> {
    protected createImplementation(): DomainChart;
    protected _implementation: any;
    readonly i: DomainChart;
    private onImplementationCreated;
    constructor(props: P);
    private _hasUserValues;
    protected readonly hasUserValues: Set<string>;
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    render(): any;
    /**
    * Sets or gets the template reference to use for tooltips for all the series.
    *
    *
    */
    tooltipTemplate: React.SFC<IChartTooltipProps> | React.Component<IChartTooltipProps>;
    /**
    * Sets or gets the template references to use for tooltips for all the series, in order.
    *
    *
    */
    tooltipTemplates: (React.SFC<IChartTooltipProps> | React.Component<IChartTooltipProps>)[];
    legend: any;
    private _calloutsDataSource;
    calloutsDataSource: any[];
    bindCalloutsData(): void;
    /**
 * Gets or sets the scaling value used to affect the pixel density of the control.
 * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
 * to appear blurry.
*/
    pixelScalingRatio: number;
    /**
     * Gets or sets the left margin of chart title
    *
    *  Use `titleLeftMargin` property for the left margin of chart title.
    *
    * ```ts
    * this.chart.titleLeftMargin = 10;
    * ```
    */
    titleLeftMargin: number;
    /**
     * Gets or sets the right margin of chart title
    *
    *  Use `titleLeftMargin` property for the right margin of chart title.
    *
    * ```ts
    * this.chart.titleRightMargin = 10;
    * ```
    */
    titleRightMargin: number;
    /**
     * Gets or sets the top margin of chart title
    *
    *  Use `titleTopMargin` property for the top margin of chart title.
    *
    * ```ts
    * this.chart.titleTopMargin = 10;
    * ```
    */
    titleTopMargin: number;
    /**
     * Gets or sets the bottom margin of chart title
    *
    *  Use `titleBottomMargin` property for the bottom margin of chart title.
    *
    * ```ts
    *  this.chart.titleBottomMargin = 5;
    * ```
    */
    titleBottomMargin: number;
    /**
     * Gets or sets the left margin of chart subtitle
    *
    * Use `subtitleLeftMargin` property for the left margin of chart subtitle.
    *
    * ```ts
    * this.chart.subtitleLeftMargin = 20 ;
    * ```
    */
    subtitleLeftMargin: number;
    /**
     * Gets or sets the top margin of chart subtitle
    *
    * Use `subtitleTopMargin` property for the top margin of chart subtitle.
    *
    * ```ts
    * this.chart.subtitleTopMargin = 10;
    * ```
    */
    subtitleTopMargin: number;
    /**
     * Gets or sets the right margin of chart subtitle
    *
    * Use `subtitleRightMargin` property for the right margin of chart subtitle.
    *
    * ```ts
    *  this.chart.subtitleRightMargin = 20 ;
    * ```
    */
    subtitleRightMargin: number;
    /**
     * Gets or sets the bottom margin of chart subtitle
    *
    * Use `subtitleBottomMargin` property for the bottom margin of chart subtitle.
    *
    * ```ts
    * this.chart.subtitleBottomMargin = 10 ;
    * ```
    */
    subtitleBottomMargin: number;
    /**
     * Gets or sets color of chart subtitle
    *
    * Use `subtitleTextColor` property to color the subtitle.
    *
    * ```ts
    * this.chart.subtitleTextColor = "#ff0000" ;
    * ```
    */
    subtitleTextColor: string;
    /**
     * Gets or sets color of chart title
    *
    *  Use `titleTextColor` property to color the chart title
    *
    * ```ts
    *  this.chart.titleTextColor="red" ;
    * ```
    */
    titleTextColor: string;
    /**
     * Gets or sets the left margin of the chart content.
    *
    * Use the 'leftMargin' property for the left margin of the chart content.
    *
    * ```ts
    *  this.chart.leftMargin = 20;
    * ```
    */
    leftMargin: number;
    /**
     * Gets or sets the top margin of the chart content.
    *
    * Use `topMargin` property for the margin of the chart content.
    *
    * ```ts
    * this.chart.topMargin=20;
    * ```
    */
    topMargin: number;
    /**
     * Gets or sets the right margin of the chart content.
    *
    * Use `rightMargin` property for the right margin of the chart content.
    *
    * ```ts
    *   this.chart.rightMargin = 20 ;
    * ```
    */
    rightMargin: number;
    /**
     * Gets or sets the bottom margin around the chart content.
    *
    * Use the `bottomMargin` property for the bottom margin around the chart content.
    *
    * ```ts
    * this.chart.bottomMargin=20;
    * ```
    */
    bottomMargin: number;
    /**
     * Gets or sets the duration used for animating series plots when the data is changing
    *
    * Use the `transitionDuration` property to animating between data values.
    *
    * ```ts
    * this.chart.transitionDuration= 500;
    * ```
    */
    transitionDuration: number;
    /**
     * Gets or sets the easing function used for animating series plots when the data is changing.
     * This can be set to one of the known values "linear" or "cubic," or it can be set to an easing function which takes a single numeric parameter and returns a number.
    *
    * The 'transitionInEasingFunction' property used for easing function for animating series plots when the chart is loading into view.
    *
    * ```ts
    * this.chart.transitionInEasingFunction=  this.cubicFunc;
    *
    * cubicFunc(time: number) : number
    *   {
    *     return time;
    *   }
    * ```
    */
    transitionEasingFunction: (time: number) => number;
    /**
     * Gets or sets CSS font property for the chart subtitle
    *
    * Use `subtitleTextStyle` property for the CSS font of the chart subtitle.
    *
    * ```ts
    * this.chart.subtitleTextStyle= "16pt Verdona";
    * ```
    */
    subtitleTextStyle: string;
    /**
     * Gets or sets CSS font property for the chart title
    *
    *  Use `titleTextStyle` property for the CSS font property of the chart title
    *
    * ```ts
    * this.chart.titleTextStyle = "24pt Verdona";
    * ```
    */
    titleTextStyle: string;
    /**
     * Gets or sets a set of property paths that should be included for consideration by the category chart, leaving the remainder excluded. If null, all properties will be considered.
    *
    * The `includedProperties` property used to include the properties for the consideration of the category chart.
    *
    * ```ts
    * this.chart.includedProperties = ["ProductName", "Cost"];
    * ```
    */
    includedProperties: string[];
    /**
     * Gets or sets a set of property paths that should be excluded from consideration by the category chart.
    *
    * The `excludedProperties` property used for the property paths that should be excluded from consideration by the category chart.
    *
    * ```ts
    * this.chart.excludedProperties = ["ID", "Discount"];
    * ```
    */
    excludedProperties: string[];
    /**
     * Gets or sets the palette of brushes to use for coloring the chart series.
     * The value provided should be an array of CSS color strings or JavaScript objects defining gradients. Optionally the first element can be a string reading "RGB" or "HSV" to specify the interpolation mode of the collection
    *
    * Use the `brushes` property to  set the brushes.
    *
    * ```ts
    * this.chart.brushes = ["#ff0000","#00ff00"];
    * ```
    */
    brushes: string[];
    /**
     * Gets or sets the palette of brushes to use for outlines on the chart series.
     * The value provided should be an array of CSS color strings or JavaScript objects defining gradients. Optionally the first element can be a string reading "RGB" or "HSV" to specify the interpolation mode of the collection
    *
    *  Use the `outlines` property to sets the palette of brushes to use for outlines on the chart series
    */
    outlines: string[];
    /**
     * Gets or sets whether the chart can be horizontally zoomed through user interactions.
    *
    * Use the `isHorizontalZoomEnabled` property to allow chart horizontally zoomed .
    *
    * ```ts
    * this.chart.isHorizontalZoomEnabled = true;
    * ```
    */
    isHorizontalZoomEnabled: boolean;
    /**
     * Gets or sets whether the chart can be vertically zoomed through user interactions.
    *
    * Use the `isVerticalZoomEnabled` property to allow chart zoom vertically.
    *
    * ```ts
    *  this.chart.isVerticalZoomEnabled = true;
    * ```
    */
    isVerticalZoomEnabled: boolean;
    /**
     * Gets or sets whether the chart can highlight series through user interactions.
     * This property applies to Category Chart and Financial Chart controls.
    */
    isSeriesHighlightingEnabled: boolean;
    /**
     * Gets or sets the rectangle representing the current scroll and zoom state of the chart.
     * WindowRect is expressed as a Rectangle with coordinates and sizes between 0 and 1.
    *
    * Use `windowRect` property representing the current scroll and zoom state of the chart.
    *
    * ```ts
    * this.chart.windowRect =[0,0,1,1];
    * ```
    */
    windowRect: IgRect;
    /**
     * Gets a rectangle representing the bounds of the plot area.
    *
    * `viewport` property representing the bounds of the plot area.
    *
    * ```ts
    * let viewport:Rect =  this.chart.viewport;
    * ```
    */
    readonly viewport: IgRect;
    /**
     * Gets or sets text to display above the plot area.
    *
    * Use the `chartTitle` property to display the text above the plot area.
    *
    * ```ts
    *  this.chart.title= "This is a Title";
    * ```
    */
    chartTitle: string;
    /**
     * Gets or sets text to display below the Title, above the plot area.
    *
    * Use the `subtitle` property to display the text below  and above the plot area.
    *
    * ```ts
    *  this.chart.subtitle ="CategoryChart Subtitle" ;
    * ```
    */
    subtitle: string;
    /**
     * Gets or sets horizontal alignment which determines the title position, relative to the left and right edges of the control.
    *
    * Use the `titleAlignment` property for the horizontal alignment of the title.
    *
    * ```ts
    * this.chart.titleAlignment = HorizontalAlignment.Center;
    * ```
    */
    titleAlignment: HorizontalAlignment;
    /**
     * Gets or sets horizontal alignment which determines the subtitle position, relative to the left and right edges of the control.
    *
    * Use the `subtitleAlignment` property to Gets or sets horizontal alignment.
    *
    * ```ts
    * this.chart.subtitleAlignment = HorizontalAlignment.Right;
    * ```
    */
    subtitleAlignment: HorizontalAlignment;
    /**
     * Gets or sets the behavior that determines how unknown values will be plotted on the chart.
     * Null and Double.NaN are two examples of unknown values.
    *
    * Use the `unknownValuePlotting` property to determines the behavior that how unknown values will be plotted on the chart.
    *
    * ```ts
    * this.chart.unknownValuePlotting =UnknownValuePlotting.DontPlot;
    * ```
    */
    unknownValuePlotting: UnknownValuePlotting;
    /**
     * Gets or sets the rendering resolution for all series in this chart.
     * Where n = Resolution, for every n horizontal pixels, combine all items into a single datapoint.  When Resolution = 0, all datapoints will be rendered as graphical objects.  Charts with a higher resolution will have faster performance.
    *
    * Use the `resolution` property for all series in this chart.
    *
    * ```ts
    *   this.chart.resolution = 2 ;
    * ```
    */
    resolution: number;
    /**
     * Gets or sets the thickness for all series in this chart. Depending on the ChartType, this can be the main brush used, or just the outline.
    *
    * Use the `thickness` property for the thickness of all the series in this chart.
    *
    * ```ts
    * this.chart.thickness = 5;
    * ```
    */
    thickness: number;
    private _markerTypes;
    /**
     * Gets or sets the marker shapes used for indicating location of data points in this chart.
     * This property applies only to these chart types: point, line, spline, bubble, and polygon
    */
    markerTypes: MarkerTypeCollection;
    /**
     * Gets or sets the palette of brushes used for rendering fill area of data point markers.
     * This property applies only to these chart types: point, line, spline, bubble, and polygon
    *
    * `markerBrushes` property used for rendering fill area of data point markers.
    *
    * ```ts
    *  this.chart.markerBrushes=[ "#ff0000", "#ffff00", "#00ffff" ];
    * ```
    */
    markerBrushes: string[];
    /**
     * Gets or sets the palette of brushes used for rendering outlines of data point markers.
     * This property applies only to these chart types: point, line, spline, bubble, and polygon
    *
    * `markerOutlines` property used for rendering outlines of data point markers.
    *
    * ```ts
    * this.chart.markerOutlines= ["#ff0000", "#ffff00", "#00ffff"] ;
    * ```
    */
    markerOutlines: string[];
    /**
     * Gets or sets the maximum number of markers displyed in the plot area of the chart.
    *
    * `markerMaxCount` property used to display maximum number of markers in the plot area of the chart.
    *
    * ```ts
    *  this.chart.markerMaxCount = 100 ;
    * ```
    */
    markerMaxCount: number;
    /**
     * Gets or sets whether the series animations should be allowed when a range change has been detected on an axis.
    */
    animateSeriesWhenAxisRangeChanges: boolean;
    /**
     * Gets or sets the palette of brushes to used for coloring trend lines in this chart.
     * The value provided should be an array of CSS color strings or JavaScript objects defining gradients. Optionally the first element can be a string reading "RGB" or "HSV" to specify the interpolation mode of the collection
    *
    * Use the `trendLineBrushes` property for coloring trend lines in the chart.
    *
    * ```ts
    * this.chart.trendLineBrushes=["#ff0000", "#ffff00", "#00ffff"]	;
    * ```
    */
    trendLineBrushes: string[];
    /**
     * Gets or sets the formula used for calculating trend lines in this chart.
     * This property applies only to these chart types: point, line, spline, and bubble
    *
    * Use the `trendLineType` property for calculating trend lines.
    *
    * ```ts
    * this.chart.trendLineType = TrendLineType.CubicFit;
    * ```
    */
    trendLineType: TrendLineType;
    /**
     * Gets or sets the thickness of the trend lines in this chart.
     * This property applies only to these chart types: point, line, spline, and bubble
    *
    * Use the `trendLineThickness` property for the thickness of the trend lines in the chart.
    *
    * ```ts
    * this.chart.trendLineThickness=2;
    * ```
    */
    trendLineThickness: number;
    /**
     * Gets or sets a value indicating whether grid and tick lines are aligned to device pixels.
    *
    * Use `alignsGridLinesToPixels` propert to indicat whether grid and tick lines are aligned to device pixels.
    *
    * ```ts
    *  this.chart.alignsGridLinesToPixels= true;
    * ```
    */
    alignsGridLinesToPixels: boolean;
    trendLinePeriod: number;
    /**
     * Gets or sets the style of tooltip to be displayed.
    */
    toolTipType: ToolTipType;
    /**
     * Gets or sets the crosshairs to be displayed.
    */
    crosshairsDisplayMode: CrosshairsDisplayMode;
    /**
     * Gets or sets whether crosshairs will snap to the nearest data point.
    */
    crosshairsSnapToData: boolean;
    /**
     * Gets or sets whether annotations are shown along the axis for crosshair values
    */
    crosshairsAnnotationEnabled: boolean;
    /**
     * Gets or sets whether annotations for the final value of each series is displayed on the axis.
    */
    finalValueAnnotationsVisible: boolean;
    /**
     * Gets or sets if callouts should be displayed.
    */
    calloutsVisible: boolean;
    /**
     * Gets or sets if event annotations should be displayed.
    */
    calloutStyleUpdatingEventEnabled: boolean;
    /**
     * Gets or sets the member path of the X data for the callouts.
    */
    calloutsXMemberPath: string;
    /**
     * Gets or sets the member path of the Y data for the callouts.
    */
    calloutsYMemberPath: string;
    /**
     * Gets or sets the member path of the label data for the callouts.
    */
    calloutsLabelMemberPath: string;
    /**
     * Gets or sets the member path of the content data for the callouts.
    */
    calloutsContentMemberPath: string;
    /**
 * Provides a container for this control

*
* `provideContainer` method provide container for the control.
*
* ```ts
*     this.chart.provideContainer("Container");
* ```
*/
    provideContainer(container: any): void;
    /**
     * Destroy this control
    
    *
    * Use the `destroy` property to destroy the chart.
    *
    * ```ts
    * this.chart.destroy();
    * ```
    */
    destroy(): void;
    /**
     * Called when the control has been resized.
    
    *
    * `notifyResized` method Called when the control has been resized.
    *
    * ```ts
    * this.chart.notifyResized();
    * ```
    */
    notifyResized(): void;
    notifyVisualPropertiesChanged(): void;
    /**
     * Forces any pending refresh to the chart to be finished.
    
    *
    * Method `flush` used to Forces any pending deferred work to render on the chart before continuing.
    *
    * ```ts
    * this.chart.flush();
    * ```
    */
    flush(): void;
    /**
     * Hides the active main tooltip, if displayed.
    
    *
    * Use the `hideToolTip` method to hide the active tooltip.
    *
    * ```ts
    * this.chart.hideToolTip();
    * ```
    */
    hideToolTip(): void;
    notifySetItem(source_: any, index: number, oldItem: any, newItem: any): void;
    /**
     * Used to manually notify the chart that the data source has reset or cleared its items.
    
    *
    * Use `notifyClearItems` method to notifies the chart that the items have been cleared from an associated data source.
    *
    * ```ts
    * this.chart.notifyClearItems(this.data);
    * ```
    */
    notifyClearItems(source_: any): void;
    notifyInsertItem(source_: any, index: number, newItem: any): void;
    notifyRemoveItem(source_: any, index: number, oldItem: any): void;
    private _seriesAdded;
    private _seriesAdded_wrapped;
    /**
     * Event raised when a series is initialized and added to this chart.
    *
    * `SeriesAdded` event raised when a series is initialized and added to this chart.
    *
    * ```ts
    * CategoryChart_SeriesAdded(sender:any ,aregs:ChartSeriesEventArgs)
    * {
    * }
    * ```
    */
    seriesAdded: (s: IgrDomainChart, e: ChartSeriesEventArgs) => void;
    private _seriesRemoved;
    private _seriesRemoved_wrapped;
    /**
     * Event raised when a series is removed from this chart.
    *
    * `SeriesRemoved` event raised when a series is removed from this chart.
    *
    * ```ts
    *  CategoryChart_seriesRemoved(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesRemoved: (s: IgrDomainChart, e: ChartSeriesEventArgs) => void;
    private _seriesPointerEnter;
    private _seriesPointerEnter_wrapped;
    /**
     * Occurs when the pointer enters a Series.
    *
    * `SeriesPointerEnter` event raised when the pointer enters a Series.
    *
    * ```ts
    * CategoryChart_seriesPointerEnter(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerEnter: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    private _seriesPointerLeave;
    private _seriesPointerLeave_wrapped;
    /**
     * Occurs when the pointer leaves a Series.
    *
    * `SeriesPointerLeave` event raised when the pointer leaves a Series.
    *
    * ```ts
    * CategoryChart_seriesPointerLeave(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerLeave: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    private _seriesPointerMove;
    private _seriesPointerMove_wrapped;
    /**
     * Occurs when the pointer moves over a Series.
    *
    * `SeriesPointerMove` event raised when the pointer moves over a Series.
    *
    * ```ts
    *  CategoryChart_seriesPointerMove(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerMove: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    private _seriesPointerDown;
    private _seriesPointerDown_wrapped;
    /**
     * Occurs when the pointer is pressed down over a Series.
    *
    * `SeriesPointerDown` event raised when the pointer is pressed down over a Series
    *
    * ```ts
    * CategoryChart_seriesPointerDown(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerDown: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    private _seriesPointerUp;
    private _seriesPointerUp_wrapped;
    /**
     * Occurs when the pointer is released over a Series.
    *
    * `SeriesPointerUp` event raised when the pointer is released over a Series.
    *
    * ```ts
    *  CategoryChart_seriesPointerUp(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerUp: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    private _calloutStyleUpdating;
    private _calloutStyleUpdating_wrapped;
    /**
     * Occurs when the style of a callout is updated.
    */
    calloutStyleUpdating: (s: IgrDomainChart, e: CalloutStyleUpdatingEventArgs) => void;
}
export interface IIgrDomainChartProps {
    tooltipTemplate?: React.SFC<IChartTooltipProps> | React.Component<IChartTooltipProps>;
    tooltipTemplates?: (React.SFC<IChartTooltipProps> | React.Component<IChartTooltipProps>)[];
    calloutsDataSource?: any[];
    /**
 * Gets or sets the scaling value used to affect the pixel density of the control.
 * A higher scaling ratio will produce crisper visuals at the expense of memory.  Lower values will cause the control
 * to appear blurry.
*/
    pixelScalingRatio?: number | string;
    /**
     * Gets or sets the left margin of chart title
    *
    *  Use `titleLeftMargin` property for the left margin of chart title.
    *
    * ```ts
    * this.chart.titleLeftMargin = 10;
    * ```
    */
    titleLeftMargin?: number | string;
    /**
     * Gets or sets the right margin of chart title
    *
    *  Use `titleLeftMargin` property for the right margin of chart title.
    *
    * ```ts
    * this.chart.titleRightMargin = 10;
    * ```
    */
    titleRightMargin?: number | string;
    /**
     * Gets or sets the top margin of chart title
    *
    *  Use `titleTopMargin` property for the top margin of chart title.
    *
    * ```ts
    * this.chart.titleTopMargin = 10;
    * ```
    */
    titleTopMargin?: number | string;
    /**
     * Gets or sets the bottom margin of chart title
    *
    *  Use `titleBottomMargin` property for the bottom margin of chart title.
    *
    * ```ts
    *  this.chart.titleBottomMargin = 5;
    * ```
    */
    titleBottomMargin?: number | string;
    /**
     * Gets or sets the left margin of chart subtitle
    *
    * Use `subtitleLeftMargin` property for the left margin of chart subtitle.
    *
    * ```ts
    * this.chart.subtitleLeftMargin = 20 ;
    * ```
    */
    subtitleLeftMargin?: number | string;
    /**
     * Gets or sets the top margin of chart subtitle
    *
    * Use `subtitleTopMargin` property for the top margin of chart subtitle.
    *
    * ```ts
    * this.chart.subtitleTopMargin = 10;
    * ```
    */
    subtitleTopMargin?: number | string;
    /**
     * Gets or sets the right margin of chart subtitle
    *
    * Use `subtitleRightMargin` property for the right margin of chart subtitle.
    *
    * ```ts
    *  this.chart.subtitleRightMargin = 20 ;
    * ```
    */
    subtitleRightMargin?: number | string;
    /**
     * Gets or sets the bottom margin of chart subtitle
    *
    * Use `subtitleBottomMargin` property for the bottom margin of chart subtitle.
    *
    * ```ts
    * this.chart.subtitleBottomMargin = 10 ;
    * ```
    */
    subtitleBottomMargin?: number | string;
    /**
     * Gets or sets color of chart subtitle
    *
    * Use `subtitleTextColor` property to color the subtitle.
    *
    * ```ts
    * this.chart.subtitleTextColor = "#ff0000" ;
    * ```
    */
    subtitleTextColor?: string;
    /**
     * Gets or sets color of chart title
    *
    *  Use `titleTextColor` property to color the chart title
    *
    * ```ts
    *  this.chart.titleTextColor="red" ;
    * ```
    */
    titleTextColor?: string;
    /**
     * Gets or sets the left margin of the chart content.
    *
    * Use the 'leftMargin' property for the left margin of the chart content.
    *
    * ```ts
    *  this.chart.leftMargin = 20;
    * ```
    */
    leftMargin?: number | string;
    /**
     * Gets or sets the top margin of the chart content.
    *
    * Use `topMargin` property for the margin of the chart content.
    *
    * ```ts
    * this.chart.topMargin=20;
    * ```
    */
    topMargin?: number | string;
    /**
     * Gets or sets the right margin of the chart content.
    *
    * Use `rightMargin` property for the right margin of the chart content.
    *
    * ```ts
    *   this.chart.rightMargin = 20 ;
    * ```
    */
    rightMargin?: number | string;
    /**
     * Gets or sets the bottom margin around the chart content.
    *
    * Use the `bottomMargin` property for the bottom margin around the chart content.
    *
    * ```ts
    * this.chart.bottomMargin=20;
    * ```
    */
    bottomMargin?: number | string;
    /**
     * Gets or sets the duration used for animating series plots when the data is changing
    *
    * Use the `transitionDuration` property to animating between data values.
    *
    * ```ts
    * this.chart.transitionDuration= 500;
    * ```
    */
    transitionDuration?: number | string;
    /**
     * Gets or sets the easing function used for animating series plots when the data is changing.
     * This can be set to one of the known values "linear" or "cubic," or it can be set to an easing function which takes a single numeric parameter and returns a number.
    *
    * The 'transitionInEasingFunction' property used for easing function for animating series plots when the chart is loading into view.
    *
    * ```ts
    * this.chart.transitionInEasingFunction=  this.cubicFunc;
    *
    * cubicFunc(time: number) : number
    *   {
    *     return time;
    *   }
    * ```
    */
    transitionEasingFunction?: (time: number) => number;
    /**
     * Gets or sets CSS font property for the chart subtitle
    *
    * Use `subtitleTextStyle` property for the CSS font of the chart subtitle.
    *
    * ```ts
    * this.chart.subtitleTextStyle= "16pt Verdona";
    * ```
    */
    subtitleTextStyle?: string;
    /**
     * Gets or sets CSS font property for the chart title
    *
    *  Use `titleTextStyle` property for the CSS font property of the chart title
    *
    * ```ts
    * this.chart.titleTextStyle = "24pt Verdona";
    * ```
    */
    titleTextStyle?: string;
    /**
     * Gets or sets a set of property paths that should be included for consideration by the category chart, leaving the remainder excluded. If null, all properties will be considered.
    *
    * The `includedProperties` property used to include the properties for the consideration of the category chart.
    *
    * ```ts
    * this.chart.includedProperties = ["ProductName", "Cost"];
    * ```
    */
    includedProperties?: string[];
    /**
     * Gets or sets a set of property paths that should be excluded from consideration by the category chart.
    *
    * The `excludedProperties` property used for the property paths that should be excluded from consideration by the category chart.
    *
    * ```ts
    * this.chart.excludedProperties = ["ID", "Discount"];
    * ```
    */
    excludedProperties?: string[];
    /**
     * Gets or sets the palette of brushes to use for coloring the chart series.
     * The value provided should be an array of CSS color strings or JavaScript objects defining gradients. Optionally the first element can be a string reading "RGB" or "HSV" to specify the interpolation mode of the collection
    *
    * Use the `brushes` property to  set the brushes.
    *
    * ```ts
    * this.chart.brushes = ["#ff0000","#00ff00"];
    * ```
    */
    brushes?: string[] | string;
    /**
     * Gets or sets the palette of brushes to use for outlines on the chart series.
     * The value provided should be an array of CSS color strings or JavaScript objects defining gradients. Optionally the first element can be a string reading "RGB" or "HSV" to specify the interpolation mode of the collection
    *
    *  Use the `outlines` property to sets the palette of brushes to use for outlines on the chart series
    */
    outlines?: string[] | string;
    /**
     * Gets or sets whether the chart can be horizontally zoomed through user interactions.
    *
    * Use the `isHorizontalZoomEnabled` property to allow chart horizontally zoomed .
    *
    * ```ts
    * this.chart.isHorizontalZoomEnabled = true;
    * ```
    */
    isHorizontalZoomEnabled?: boolean | string;
    /**
     * Gets or sets whether the chart can be vertically zoomed through user interactions.
    *
    * Use the `isVerticalZoomEnabled` property to allow chart zoom vertically.
    *
    * ```ts
    *  this.chart.isVerticalZoomEnabled = true;
    * ```
    */
    isVerticalZoomEnabled?: boolean | string;
    /**
     * Gets or sets whether the chart can highlight series through user interactions.
     * This property applies to Category Chart and Financial Chart controls.
    */
    isSeriesHighlightingEnabled?: boolean | string;
    /**
     * Gets or sets the rectangle representing the current scroll and zoom state of the chart.
     * WindowRect is expressed as a Rectangle with coordinates and sizes between 0 and 1.
    *
    * Use `windowRect` property representing the current scroll and zoom state of the chart.
    *
    * ```ts
    * this.chart.windowRect =[0,0,1,1];
    * ```
    */
    windowRect?: IgRect | string;
    /**
     * Gets or sets text to display above the plot area.
    *
    * Use the `chartTitle` property to display the text above the plot area.
    *
    * ```ts
    *  this.chart.title= "This is a Title";
    * ```
    */
    chartTitle?: string;
    /**
     * Gets or sets text to display below the Title, above the plot area.
    *
    * Use the `subtitle` property to display the text below  and above the plot area.
    *
    * ```ts
    *  this.chart.subtitle ="CategoryChart Subtitle" ;
    * ```
    */
    subtitle?: string;
    /**
     * Gets or sets horizontal alignment which determines the title position, relative to the left and right edges of the control.
    *
    * Use the `titleAlignment` property for the horizontal alignment of the title.
    *
    * ```ts
    * this.chart.titleAlignment = HorizontalAlignment.Center;
    * ```
    */
    titleAlignment?: HorizontalAlignment | string;
    /**
     * Gets or sets horizontal alignment which determines the subtitle position, relative to the left and right edges of the control.
    *
    * Use the `subtitleAlignment` property to Gets or sets horizontal alignment.
    *
    * ```ts
    * this.chart.subtitleAlignment = HorizontalAlignment.Right;
    * ```
    */
    subtitleAlignment?: HorizontalAlignment | string;
    /**
     * Gets or sets the behavior that determines how unknown values will be plotted on the chart.
     * Null and Double.NaN are two examples of unknown values.
    *
    * Use the `unknownValuePlotting` property to determines the behavior that how unknown values will be plotted on the chart.
    *
    * ```ts
    * this.chart.unknownValuePlotting =UnknownValuePlotting.DontPlot;
    * ```
    */
    unknownValuePlotting?: UnknownValuePlotting | string;
    /**
     * Gets or sets the rendering resolution for all series in this chart.
     * Where n = Resolution, for every n horizontal pixels, combine all items into a single datapoint.  When Resolution = 0, all datapoints will be rendered as graphical objects.  Charts with a higher resolution will have faster performance.
    *
    * Use the `resolution` property for all series in this chart.
    *
    * ```ts
    *   this.chart.resolution = 2 ;
    * ```
    */
    resolution?: number | string;
    /**
     * Gets or sets the thickness for all series in this chart. Depending on the ChartType, this can be the main brush used, or just the outline.
    *
    * Use the `thickness` property for the thickness of all the series in this chart.
    *
    * ```ts
    * this.chart.thickness = 5;
    * ```
    */
    thickness?: number | string;
    /**
     * Gets or sets the marker shapes used for indicating location of data points in this chart.
     * This property applies only to these chart types: point, line, spline, bubble, and polygon
    */
    markerTypes?: MarkerTypeCollection | string;
    /**
     * Gets or sets the palette of brushes used for rendering fill area of data point markers.
     * This property applies only to these chart types: point, line, spline, bubble, and polygon
    *
    * `markerBrushes` property used for rendering fill area of data point markers.
    *
    * ```ts
    *  this.chart.markerBrushes=[ "#ff0000", "#ffff00", "#00ffff" ];
    * ```
    */
    markerBrushes?: string[] | string;
    /**
     * Gets or sets the palette of brushes used for rendering outlines of data point markers.
     * This property applies only to these chart types: point, line, spline, bubble, and polygon
    *
    * `markerOutlines` property used for rendering outlines of data point markers.
    *
    * ```ts
    * this.chart.markerOutlines= ["#ff0000", "#ffff00", "#00ffff"] ;
    * ```
    */
    markerOutlines?: string[] | string;
    /**
     * Gets or sets the maximum number of markers displyed in the plot area of the chart.
    *
    * `markerMaxCount` property used to display maximum number of markers in the plot area of the chart.
    *
    * ```ts
    *  this.chart.markerMaxCount = 100 ;
    * ```
    */
    markerMaxCount?: number | string;
    /**
     * Gets or sets whether the series animations should be allowed when a range change has been detected on an axis.
    */
    animateSeriesWhenAxisRangeChanges?: boolean | string;
    /**
     * Gets or sets the palette of brushes to used for coloring trend lines in this chart.
     * The value provided should be an array of CSS color strings or JavaScript objects defining gradients. Optionally the first element can be a string reading "RGB" or "HSV" to specify the interpolation mode of the collection
    *
    * Use the `trendLineBrushes` property for coloring trend lines in the chart.
    *
    * ```ts
    * this.chart.trendLineBrushes=["#ff0000", "#ffff00", "#00ffff"]	;
    * ```
    */
    trendLineBrushes?: string[] | string;
    /**
     * Gets or sets the formula used for calculating trend lines in this chart.
     * This property applies only to these chart types: point, line, spline, and bubble
    *
    * Use the `trendLineType` property for calculating trend lines.
    *
    * ```ts
    * this.chart.trendLineType = TrendLineType.CubicFit;
    * ```
    */
    trendLineType?: TrendLineType | string;
    /**
     * Gets or sets the thickness of the trend lines in this chart.
     * This property applies only to these chart types: point, line, spline, and bubble
    *
    * Use the `trendLineThickness` property for the thickness of the trend lines in the chart.
    *
    * ```ts
    * this.chart.trendLineThickness=2;
    * ```
    */
    trendLineThickness?: number | string;
    /**
     * Gets or sets a value indicating whether grid and tick lines are aligned to device pixels.
    *
    * Use `alignsGridLinesToPixels` propert to indicat whether grid and tick lines are aligned to device pixels.
    *
    * ```ts
    *  this.chart.alignsGridLinesToPixels= true;
    * ```
    */
    alignsGridLinesToPixels?: boolean | string;
    trendLinePeriod?: number | string;
    /**
     * Gets or sets the style of tooltip to be displayed.
    */
    toolTipType?: ToolTipType | string;
    /**
     * Gets or sets the crosshairs to be displayed.
    */
    crosshairsDisplayMode?: CrosshairsDisplayMode | string;
    /**
     * Gets or sets whether crosshairs will snap to the nearest data point.
    */
    crosshairsSnapToData?: boolean | string;
    /**
     * Gets or sets whether annotations are shown along the axis for crosshair values
    */
    crosshairsAnnotationEnabled?: boolean | string;
    /**
     * Gets or sets whether annotations for the final value of each series is displayed on the axis.
    */
    finalValueAnnotationsVisible?: boolean | string;
    /**
     * Gets or sets if callouts should be displayed.
    */
    calloutsVisible?: boolean | string;
    /**
     * Gets or sets if event annotations should be displayed.
    */
    calloutStyleUpdatingEventEnabled?: boolean | string;
    /**
     * Gets or sets the member path of the X data for the callouts.
    */
    calloutsXMemberPath?: string;
    /**
     * Gets or sets the member path of the Y data for the callouts.
    */
    calloutsYMemberPath?: string;
    /**
     * Gets or sets the member path of the label data for the callouts.
    */
    calloutsLabelMemberPath?: string;
    /**
     * Gets or sets the member path of the content data for the callouts.
    */
    calloutsContentMemberPath?: string;
    /**
 * Event raised when a series is initialized and added to this chart.
*
* `SeriesAdded` event raised when a series is initialized and added to this chart.
*
* ```ts
* CategoryChart_SeriesAdded(sender:any ,aregs:ChartSeriesEventArgs)
* {
* }
* ```
*/
    seriesAdded?: (s: IgrDomainChart, e: ChartSeriesEventArgs) => void;
    /**
     * Event raised when a series is removed from this chart.
    *
    * `SeriesRemoved` event raised when a series is removed from this chart.
    *
    * ```ts
    *  CategoryChart_seriesRemoved(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesRemoved?: (s: IgrDomainChart, e: ChartSeriesEventArgs) => void;
    /**
     * Occurs when the pointer enters a Series.
    *
    * `SeriesPointerEnter` event raised when the pointer enters a Series.
    *
    * ```ts
    * CategoryChart_seriesPointerEnter(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerEnter?: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    /**
     * Occurs when the pointer leaves a Series.
    *
    * `SeriesPointerLeave` event raised when the pointer leaves a Series.
    *
    * ```ts
    * CategoryChart_seriesPointerLeave(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerLeave?: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    /**
     * Occurs when the pointer moves over a Series.
    *
    * `SeriesPointerMove` event raised when the pointer moves over a Series.
    *
    * ```ts
    *  CategoryChart_seriesPointerMove(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerMove?: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    /**
     * Occurs when the pointer is pressed down over a Series.
    *
    * `SeriesPointerDown` event raised when the pointer is pressed down over a Series
    *
    * ```ts
    * CategoryChart_seriesPointerDown(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerDown?: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    /**
     * Occurs when the pointer is released over a Series.
    *
    * `SeriesPointerUp` event raised when the pointer is released over a Series.
    *
    * ```ts
    *  CategoryChart_seriesPointerUp(sender: any , aregs: ChartSeriesEventArgs)
    *   {
    *
    *   }
    * ```
    */
    seriesPointerUp?: (s: IgrDomainChart, e: DomainChartSeriesPointerEventArgs) => void;
    /**
     * Occurs when the style of a callout is updated.
    */
    calloutStyleUpdating?: (s: IgrDomainChart, e: CalloutStyleUpdatingEventArgs) => void;
}
