import * as React from 'react';
import { IgRect } from "igniteui-react-core";
import { IgPoint } from "igniteui-react-core";
import { IgrHorizontalAnchoredCategorySeries, IIgrHorizontalAnchoredCategorySeriesProps } from "./igr-horizontal-anchored-category-series";
import { WaterfallSeries } from "./WaterfallSeries";
/**
 * Represents a IgxDataChartComponent waterfall column series.
*
* `WaterfallSeries` belongs to a group of `CategorySeries` and it is rendered using a collection of vertical columns that show the difference between consecutive data points.
*
* ```ts
*  <IgrDataChart
*     dataSource={this.state.dataSource} >
*
*     <IgrCategoryXAxis name="xAxis" />
*     <IgrNumericYAxis name="yAxis" />
*
*     <IgrWaterfallSeries
*      name="series1"
*     xAxisName="xAxis"
* 	yAxisName="yAxis"
* 	valueMemberPath="Value"/>
*  </IgrDataChart>
* ```
*
* ```ts
* let series= new IgrWaterfallSeries({name: "series"});
* series.xAxis = this.xAxis;
* series.yAxis = this.yAxis;
* series.valueMemberPath = "value";
* this.chart.series.add(series);
* ```
*/
export declare class IgrWaterfallSeries extends IgrHorizontalAnchoredCategorySeries<IIgrWaterfallSeriesProps & React.HTMLAttributes<HTMLElement>> {
    protected createImplementation(): WaterfallSeries;
    /**
                                 * @hidden
                                 */
    get i(): WaterfallSeries;
    constructor(props: IIgrWaterfallSeriesProps & React.HTMLAttributes<HTMLElement>);
    /**
     * Gets whether the current series shows a waterfall column shape.
    */
    get isWaterfall(): boolean;
    /**
     * Overridden by derived series classes to indicate when marker-less display is preferred or not.
    */
    get isMarkerlessDisplayPreferred(): boolean;
    /**
     * Gets whether the series is financial waterfall
    */
    get isFinancialWaterfall(): boolean;
    /**
     * Overridden by derived series classes to indicate when negative colors are supported or not.
    */
    get isNegativeColorSupported(): boolean;
    /**
     * Gets or sets the brush to use for negative portions of the series.
    *
    * Gets or sets the color used to draw negative declines in values for this `WaterfallSeries`.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	negativeBrush="#ff0000"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.negativeBrush = "#ff0000";
    * this.chart.series.add(series);
    * ```
    */
    get negativeBrush(): string;
    set negativeBrush(v: string);
    /**
     * Gets or sets the x-radius of the ellipse that is used to round the corners of the column.
    *
    * Gets or sets the amount to round corners in the direction of the X axis in this series.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	radiusX="15"
    *     radiusY="15"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.radiusX = 15;
    * series.radiusY = 15;
    * this.chart.series.add(series);
    * ```
    */
    get radiusX(): number;
    set radiusX(v: number);
    /**
     * Gets or sets the y-radius of the ellipse that is used to round the corners of the column.
    *
    * Gets or sets the amount to round corners in the direction of the Y axis in this series.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	radiusX="15"
    *     radiusY="15"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.radiusX = 15;
    * series.radiusY = 15;
    * this.chart.series.add(series);
    * ```
    */
    get radiusY(): number;
    set radiusY(v: number);
    /**
     * Brush to use for outlining negative elements in the waterfall series.
    *
    * Gets or sets the color used to draw borders of negative declines in values for this `WaterfallSeries`.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	negativeOutline="#ff0000"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.negativeOutline = "#ff0000";
    * this.chart.series.add(series);
    * ```
    */
    get negativeOutline(): string;
    set negativeOutline(v: string);
    setNegativeColors(negativeBrush: string, negativeOutline: string): void;
    /**
     * If possible, will return the best available value bounding box within the series that has the best value match for the world position provided.
    
    * @param world  * The world coordinate for which to get a value bounding box for
    *
    * Returns a bounding box `Rect` for a data value given a `Point`.
    */
    getSeriesValueBoundingBox(world: IgPoint): IgRect;
    /**
     * For a category plotted series, returns the current width of the items within the categories. This only returns a value if the items have some form of width (e.g. columns, bars, etc.) otherwise 0 is returned.
    
    *
    * Returns the width of items in the `WaterfallSeries`.
    *
    * ```ts
    * let itemSpan: number = series.GetItemSpan();
    * ```
    */
    getItemSpan(): number;
}
export interface IIgrWaterfallSeriesProps extends IIgrHorizontalAnchoredCategorySeriesProps {
    /**
     * Gets or sets the brush to use for negative portions of the series.
    *
    * Gets or sets the color used to draw negative declines in values for this `WaterfallSeries`.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	negativeBrush="#ff0000"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.negativeBrush = "#ff0000";
    * this.chart.series.add(series);
    * ```
    */
    negativeBrush?: string;
    /**
     * Gets or sets the x-radius of the ellipse that is used to round the corners of the column.
    *
    * Gets or sets the amount to round corners in the direction of the X axis in this series.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	radiusX="15"
    *     radiusY="15"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.radiusX = 15;
    * series.radiusY = 15;
    * this.chart.series.add(series);
    * ```
    */
    radiusX?: number | string;
    /**
     * Gets or sets the y-radius of the ellipse that is used to round the corners of the column.
    *
    * Gets or sets the amount to round corners in the direction of the Y axis in this series.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	radiusX="15"
    *     radiusY="15"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.radiusX = 15;
    * series.radiusY = 15;
    * this.chart.series.add(series);
    * ```
    */
    radiusY?: number | string;
    /**
     * Brush to use for outlining negative elements in the waterfall series.
    *
    * Gets or sets the color used to draw borders of negative declines in values for this `WaterfallSeries`.
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrWaterfallSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	negativeOutline="#ff0000"
    * 	valueMemberPath="Value"/>
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * series.xAxis = this.xAxis;
    * series.yAxis = this.yAxis;
    * series.valueMemberPath = "value";
    * series.negativeOutline = "#ff0000";
    * this.chart.series.add(series);
    * ```
    */
    negativeOutline?: string;
}
