import * as React from 'react';
import { ILegendsProps, ILegendContainer } from './Legends.types';
export interface ILegendState {
    activeLegend: string;
    isHoverCardVisible: boolean;
    /** Set of legends selected, both for multiple selection and single selection */
    selectedLegends: {
        [key: string]: boolean;
    };
}
export declare class LegendsBase extends React.Component<ILegendsProps, ILegendState> implements ILegendContainer {
    private _hoverCardRef;
    private _classNames;
    /** Boolean variable to check if one or more legends are selected */
    private _isLegendSelected;
    private _rootElem;
    static getDerivedStateFromProps(newProps: ILegendsProps, prevState: ILegendState): ILegendState;
    constructor(props: ILegendsProps);
    render(): JSX.Element;
    toSVG: (svgWidth: number, isRTL?: boolean) => {
        node: SVGGElement | null;
        width: number;
        height: number;
    };
    private _generateData;
    private _onRenderData;
    private _onReduceData;
    private _onGrowData;
    /**
     * Get the new selected legends based on the legend that was clicked when multi-select is enabled.
     * @param legend The legend that was clicked
     * @returns An object with the new selected legend(s) state data.
     */
    private _getNewSelectedLegendsForMultiselect;
    /**
     * Get the new selected legends based on the legend that was clicked when single-select is enabled.
     * @param legend The legend that was clicked
     * @returns An object with the new selected legend state data.
     */
    private _getNewSelectedLegendsForSingleSelect;
    private _onClick;
    private _onRenderCompactCard;
    private _renderOverflowItems;
    private _hoverCardVisible;
    private _onHoverOverLegend;
    private _onLeave;
    private _renderButton;
    private _getShape;
    private _getColor;
}
