import * as React from 'react';
import { IAccessibilityProps, ICustomizedCalloutData, IAreaChartProps, IBasestate, ILineChartDataPoint } from '../../index';
import { IChart, IImageExportOptions } from '../../types/index';
declare enum InterceptVisibility {
    show = "visibility",
    hide = "hidden"
}
export interface IAreaChartAreaPoint {
    xVal: string | number;
    values: IAreaChartDataSetPoint;
}
export interface IAreaChartDataSetPoint {
    [key: string]: number | string | number[];
}
export interface IDPointType {
    values: {
        0: number;
        1: number;
        data: {};
    };
    xVal: number | Date;
}
export interface IMapXToDataSet {
    [key: string]: ILineChartDataPoint[];
    [key: number]: ILineChartDataPoint[];
}
export interface IAreaChartState extends IBasestate {
    lineXValue: number;
    displayOfLine: InterceptVisibility;
    isCircleClicked: boolean;
    dataPointCalloutProps?: ICustomizedCalloutData;
    stackCalloutProps?: ICustomizedCalloutData;
    nearestCircleToHighlight: number | string | Date | null;
    xAxisCalloutAccessibilityData?: IAccessibilityProps;
    isShowCalloutPending: boolean;
    /** focused point */
    activePoint: string;
    selectedLegends: string[];
}
export declare class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> implements IChart {
    static defaultProps: Partial<IAreaChartProps>;
    private _calloutPoints;
    private _createSet;
    private _colors;
    private _opacity;
    private _uniqueIdForGraph;
    private _verticalLineId;
    private _circleId;
    private _uniqueCallOutID;
    private _data;
    private _chart;
    private margins;
    private _rectId;
    private _xAxisRectScale;
    private _isMultiStackChart;
    private _tooltipId;
    private _highlightedCircleId;
    private _enableComputationOptimization;
    private _firstRenderOptimization;
    private _emptyChartId;
    private _cartesianChartRef;
    private _legendsRef;
    constructor(props: IAreaChartProps);
    componentDidUpdate(prevProps: IAreaChartProps): void;
    render(): JSX.Element;
    get chartContainer(): HTMLElement | null;
    toImage: (opts?: IImageExportOptions) => Promise<string>;
    private _getDomainNRangeValues;
    private _getMargins;
    private _onRectMouseMove;
    /**
     * just cleaning up the state which we have set in the mouse move event
     */
    private _onRectMouseOut;
    private _handleChartMouseLeave;
    private _getDataPoints;
    private _createDataSet;
    private _getCustomizedCallout;
    private _getGraphData;
    private _onLegendHover;
    private _onLegendLeave;
    private _getLegendData;
    private _onLegendSelectionChange;
    private _onDataPointClick;
    private _getOpacity;
    private _getLineOpacity;
    private _updateCircleFillColor;
    private _drawGraph;
    private _getCircleRadius;
    private _closeCallout;
    /**
     * 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 _addDefaultColors;
    private _handleFocus;
    private _getFilteredLegendValues;
    private _handleBlur;
    private _getAriaLabel;
    private _isChartEmpty;
    private _getChartTitle;
}
export {};
