import * as React from 'react';
import { IAccessibilityProps, IBasestate, IVerticalStackedBarChartProps, IVerticalStackedChartProps, IVSChartDataPoint } from '../../index';
import { IChart, IImageExportOptions } from '../../types/index';
export interface IVerticalStackedBarChartState extends IBasestate {
    dataPointCalloutProps?: IVSChartDataPoint;
    stackCalloutProps?: IVerticalStackedChartProps;
    activeXAxisDataPoint: number | string | Date;
    callOutAccessibilityData?: IAccessibilityProps;
    calloutLegend: string;
    selectedLegends: string[];
}
export declare class VerticalStackedBarChartBase extends React.Component<IVerticalStackedBarChartProps, IVerticalStackedBarChartState> implements IChart {
    static defaultProps: Partial<IVerticalStackedBarChartProps>;
    private _points;
    private _dataset;
    private _xAxisLabels;
    private _bars;
    private _xAxisType;
    private _barWidth;
    private _calloutId;
    private _colors;
    private margins;
    private _isRtl;
    private _createLegendsForLine;
    private _lineObject;
    private _tooltipId;
    private _yMax;
    private _calloutAnchorPoint;
    private _domainMargin;
    private _classNames;
    private _emptyChartId;
    private _xAxisInnerPadding;
    private _xAxisOuterPadding;
    private _cartesianChartRef;
    private _legendsRef;
    constructor(props: IVerticalStackedBarChartProps);
    componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void;
    render(): React.ReactNode;
    get chartContainer(): HTMLElement | null;
    toImage: (opts?: IImageExportOptions) => Promise<string>;
    /**
     * This function tells us what to focus either the whole stack as focusable item.
     * or each individual item in the stack as focusable item. basically it depends
     * on the prop `isCalloutForStack` if it's false user can focus each individual bar
     * within the bar if it's true then user can focus whole bar as item.
     * but if we have lines in the chart then we force the user to focus only the whole
     * bar, even if isCalloutForStack is false
     */
    private _toFocusWholeStack;
    private _getDomainNRangeValues;
    private _getFormattedLineData;
    private _getLineLegends;
    private _createLines;
    private _getCircleVisibilityAndRadius;
    private _adjustProps;
    private _createDataSetLayer;
    private _getMargins;
    private _renderCallout;
    private _getCustomizedCallout;
    private _onLegendHover;
    private _onLegendLeave;
    private _getLegendData;
    private _onLegendSelectionChange;
    private _getHighlightedLegend;
    private _onRectHover;
    private _onRectFocusHover;
    private _lineHover;
    private _lineHoverOut;
    private _lineFocus;
    private _lineHoverFocus;
    private _onStackHover;
    private _onStackHoverFocus;
    private _onRectFocus;
    private _onStackFocus;
    private _handleMouseOut;
    private _handleChartMouseLeave;
    private _onClick;
    private _getBarGapAndScale;
    private _createBar;
    private _getScales;
    private _getGraphData;
    private _closeCallout;
    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 _isLegendHighlighted;
    /**
     * This function checks if none of the legends is selected or hovered.
     */
    private _noLegendHighlighted;
    private _getAriaLabel;
    private _getDomainMargins;
    private _isChartEmpty;
    private _getChartTitle;
}
