import * as React from 'react';
import { IgPoint } from "igniteui-react-core";
import { IgrCategoryAxisBase } from "./igr-category-axis-base";
import { IgrNumericYAxis } from "./igr-numeric-y-axis";
import { IgrRangeCategorySeries, IIgrRangeCategorySeriesProps } from "./igr-range-category-series";
import { HorizontalRangeCategorySeries } from "./HorizontalRangeCategorySeries";
import { IgrAxis } from "./igr-axis";
/**
 * Base class for ranged category series with a category X-axis and a numeric Y-axis.
*
* Instantiate HorizontalAnchoredCategorySeries
*
* ```ts
*  <IgrDataChart
*     dataSource={this.state.dataSource} >
*
*     <IgrCategoryXAxis name="xAxis" />
*     <IgrNumericYAxis name="yAxis" />
*
*     <IgrColumnSeries
*      name="series1"
*     xAxisName="xAxis"
* 	yAxisName="yAxis"
* 	valueMemberPath="Value" />
*  </IgrDataChart>
* ```
*
* ```ts
* this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" });
* this.columnSeries1.dataSource = this.categoryData;
* this.columnSeries1.xAxis = this.categoryXAxis;
* this.columnSeries1.yAxis = this.numericYAxis;
* this.columnSeries1.xAxisName = "categoryXAxis";
* this.columnSeries1.yAxisName = "numericYAxis";
* this.columnSeries1.valueMemberPath = "USA";
* ```
*/
export declare abstract class IgrHorizontalRangeCategorySeries<P extends IIgrHorizontalRangeCategorySeriesProps = IIgrHorizontalRangeCategorySeriesProps> extends IgrRangeCategorySeries<P> {
    /**
                                 * @hidden
                                 */
    get i(): HorizontalRangeCategorySeries;
    constructor(props: P & React.HTMLAttributes<HTMLElement>);
    /**
     * Gets or sets the effective x-axis for the current CategorySeries object.
    *
    * Instantiate xAxis
    *
    * ```ts
    * this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" });
    * this.columnSeries1.dataSource = this.categoryData;
    * this.columnSeries1.xAxis = this.categoryXAxis;
    * this.columnSeries1.yAxis = this.numericYAxis;
    * this.columnSeries1.xAxisName = "categoryXAxis";
    * this.columnSeries1.yAxisName = "numericYAxis";
    * this.columnSeries1.valueMemberPath = "USA";
    * ```
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrColumnSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	valueMemberPath="Value" />
    *  </IgrDataChart>
    * ```
    */
    get xAxis(): IgrCategoryAxisBase;
    set xAxis(v: IgrCategoryAxisBase);
    private _xAxisName;
    /**
    * Gets or sets the name to use to resolve xAxis from markup.
    */
    get xAxisName(): string;
    set xAxisName(v: string);
    /**
     * Gets or sets the effective y-axis for the current CategorySeries object.
    *
    * Instantiate yAxis
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrColumnSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	valueMemberPath="Value" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" });
    * this.columnSeries1.dataSource = this.categoryData;
    * this.columnSeries1.xAxis = this.categoryXAxis;
    * this.columnSeries1.yAxis = this.numericYAxis;
    * this.columnSeries1.xAxisName = "categoryXAxis";
    * this.columnSeries1.yAxisName = "numericYAxis";
    * this.columnSeries1.valueMemberPath = "USA";
    * ```
    */
    get yAxis(): IgrNumericYAxis;
    set yAxis(v: IgrNumericYAxis);
    private _yAxisName;
    /**
    * Gets or sets the name to use to resolve yAxis from markup.
    */
    get yAxisName(): string;
    set yAxisName(v: string);
    /**
     * Checks if this series is a range series
    *
    * You can use the `IsRange` to get the current series is a range type series.
    *
    * <!-- Angular JS -->
    *
    * ```ts
    *   var r = this.series.isRange;
    * ```
    */
    get isRange(): boolean;
    /**
     * Gets or sets the label displayed before series' Low value in the Data Legend.
    */
    get lowMemberAsLegendLabel(): string;
    set lowMemberAsLegendLabel(v: string);
    /**
     * Gets or sets the label displayed before series' High value in the Data Legend.
    */
    get highMemberAsLegendLabel(): string;
    set highMemberAsLegendLabel(v: string);
    /**
     * Gets or sets the unit displayed after series' Low value in the Data Legend.
    */
    get lowMemberAsLegendUnit(): string;
    set lowMemberAsLegendUnit(v: string);
    /**
     * Gets or sets the unit displayed after series' High value in the Data Legend.
    */
    get highMemberAsLegendUnit(): string;
    set highMemberAsLegendUnit(v: string);
    bindAxes(axes: IgrAxis[]): void;
    findByName(name: string): any;
    protected _styling(container: any, component: any, parent?: any): void;
    /**
     * Returns the offset value for this series if grouped on a category axis.
    
    *
    * You can use the `GetOffsetValue` to get the offset value for this series if grouped on a category axis.
    *
    * <!-- Angular JS -->
    *
    *       var g = series.getOffsetValue();
    *
    * <!-- Ignite JS -->
    *
    *      N/A
    */
    getOffsetValue(): number;
    /**
     * Returns the width of the category grouping this series is in.
    
    *
    * You can use the `GetCategoryWidth` to get the width of the category grouping a series is in.
    *
    * <!-- Angular JS -->
    *
    *      var x = this.financialSeries.CanUseAsXAxis(this.xAxis);
    *
    * <!-- Ignite JS -->
    *
    *      N/A
    */
    getCategoryWidth(): number;
    getNextOrExactIndex(world: IgPoint, skipUnknowns: boolean): number;
    getPreviousOrExactIndex(world: IgPoint, skipUnknowns: boolean): number;
    getSeriesValue(world: IgPoint, useInterpolation: boolean, skipUnknowns: boolean): number;
    getSeriesLowValue(world: IgPoint, useInterpolation: boolean, skipUnknowns: boolean): number;
    getSeriesHighValue(world: IgPoint, useInterpolation: boolean, skipUnknowns: boolean): number;
    getSeriesHighValuePosition(world: IgPoint, useInterpolation: boolean, skipUnknowns: boolean): IgPoint;
    getSeriesLowValuePosition(world: IgPoint, useInterpolation: boolean, skipUnknowns: boolean): IgPoint;
    getSeriesValuePosition(world: IgPoint, useInterpolation: boolean, skipUnknowns: boolean): IgPoint;
    /**
     * Determine if object can be used as YAxis
    
    * @param axis  * The object to check
    *
    * You can use the `CanUseAsYAxis` method to determine if object can be used as YAxis
    */
    canUseAsYAxis(axis: any): boolean;
    /**
     * Determine if object can be used as XAxis
    
    * @param axis  * The object to check
    *
    * You can use the `CanUseAsXAxis` method to determine if object can be used as XAxis
    *
    * <!-- Angular JS -->
    *
    *      var x = this.financialSeries.CanUseAsXAxis(this.xAxis);
    */
    canUseAsXAxis(axis: any): boolean;
}
export interface IIgrHorizontalRangeCategorySeriesProps extends IIgrRangeCategorySeriesProps {
    /**
     * Gets or sets the effective x-axis for the current CategorySeries object.
    *
    * Instantiate xAxis
    *
    * ```ts
    * this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" });
    * this.columnSeries1.dataSource = this.categoryData;
    * this.columnSeries1.xAxis = this.categoryXAxis;
    * this.columnSeries1.yAxis = this.numericYAxis;
    * this.columnSeries1.xAxisName = "categoryXAxis";
    * this.columnSeries1.yAxisName = "numericYAxis";
    * this.columnSeries1.valueMemberPath = "USA";
    * ```
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrColumnSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	valueMemberPath="Value" />
    *  </IgrDataChart>
    * ```
    */
    xAxis?: IgrCategoryAxisBase;
    /**
    * Gets or sets the name to use to resolve xAxis from markup.
    */
    xAxisName?: string;
    /**
     * Gets or sets the effective y-axis for the current CategorySeries object.
    *
    * Instantiate yAxis
    *
    * ```ts
    *  <IgrDataChart
    *     dataSource={this.state.dataSource} >
    *
    *     <IgrCategoryXAxis name="xAxis" />
    *     <IgrNumericYAxis name="yAxis" />
    *
    *     <IgrColumnSeries
    *      name="series1"
    *     xAxisName="xAxis"
    * 	yAxisName="yAxis"
    * 	valueMemberPath="Value" />
    *  </IgrDataChart>
    * ```
    *
    * ```ts
    * this.columnSeries1 = new IgrColumnSeries({ name: "colSeries1" });
    * this.columnSeries1.dataSource = this.categoryData;
    * this.columnSeries1.xAxis = this.categoryXAxis;
    * this.columnSeries1.yAxis = this.numericYAxis;
    * this.columnSeries1.xAxisName = "categoryXAxis";
    * this.columnSeries1.yAxisName = "numericYAxis";
    * this.columnSeries1.valueMemberPath = "USA";
    * ```
    */
    yAxis?: IgrNumericYAxis;
    /**
    * Gets or sets the name to use to resolve yAxis from markup.
    */
    yAxisName?: string;
    /**
     * Gets or sets the label displayed before series' Low value in the Data Legend.
    */
    lowMemberAsLegendLabel?: string;
    /**
     * Gets or sets the label displayed before series' High value in the Data Legend.
    */
    highMemberAsLegendLabel?: string;
    /**
     * Gets or sets the unit displayed after series' Low value in the Data Legend.
    */
    lowMemberAsLegendUnit?: string;
    /**
     * Gets or sets the unit displayed after series' High value in the Data Legend.
    */
    highMemberAsLegendUnit?: string;
}
