import * as React from 'react';
import { IAccessibilityProps, IGroupedVerticalBarChartProps, IGVBarChartSeriesPoint, IBasestate } from '../../index';
import { IChart, IImageExportOptions } from '../../types/index';
export interface IGroupedVerticalBarChartState extends IBasestate {
    dataPointCalloutProps?: IGVBarChartSeriesPoint;
    callOutAccessibilityData?: IAccessibilityProps;
    calloutLegend: string;
    selectedLegends: string[];
}
export declare class GroupedVerticalBarChartBase extends React.Component<IGroupedVerticalBarChartProps, IGroupedVerticalBarChartState> implements IChart {
    static defaultProps: Partial<IGroupedVerticalBarChartProps>;
    private _createSet;
    private _dataset;
    private _keys;
    private _xAxisLabels;
    private _datasetForBars;
    private margins;
    private _groupedVerticalBarGraph;
    private _classNames;
    private _refArray;
    private _yMax;
    private _calloutId;
    private _tooltipId;
    private _xAxisType;
    private _isRtl;
    private _calloutAnchorPoint;
    private _barWidth;
    private _domainMargin;
    private _emptyChartId;
    private _groupWidth;
    private _xAxisInnerPadding;
    private _xAxisOuterPadding;
    private _cartesianChartRef;
    private _legendsRef;
    constructor(props: IGroupedVerticalBarChartProps);
    componentDidUpdate(prevProps: IGroupedVerticalBarChartProps): void;
    render(): React.ReactNode;
    get chartContainer(): HTMLElement | null;
    toImage: (opts?: IImageExportOptions) => Promise<string>;
    private _getMinMaxOfYAxis;
    private _getDomainNRangeValues;
    private _getGraphData;
    private _getMargins;
    private _createDataSetOfGVBC;
    private _getCustomizedCallout;
    private _getOpacity;
    private _onBarHover;
    private _onBarLeave;
    private _handleChartMouseLeave;
    private _onBarFocus;
    private _redirectToUrl;
    private _refCallback;
    private _buildGraph;
    private _createDataset;
    private _createX0Scale;
    private _createX1Scale;
    private _closeCallout;
    private _onLegendHover;
    private _onLegendLeave;
    private _getLegendData;
    private _onLegendSelectionChange;
    private _getAxisData;
    /**
     * This function checks if the given legend is highlighted or not.
     * A legend can be highlighted in 2 ways:
     * 1. selection: if the user clicks on it
     * 2. hovering: if there is no selected legend and the user hovers over it
     */
    private _legendHighlighted;
    /**
     * This function checks if none of the legends is selected or hovered.
     */
    private _noLegendHighlighted;
    private _getHighlightedLegend;
    private _getAriaLabel;
    private _getDomainMargins;
    private _isChartEmpty;
    private _adjustProps;
    private _getChartTitle;
}
