import React from 'react';
import PropTypes from 'prop-types';
export declare class Menu extends React.PureComponent<any> {
    static contextTypes: {
        router: PropTypes.Requireable<object>;
    };
    static propTypes: {
        config: PropTypes.Requireable<PropTypes.InferProps<{
            id: PropTypes.Requireable<string>;
            name: PropTypes.Requireable<string>;
            link: PropTypes.Requireable<string>;
            children: PropTypes.Requireable<any[]>;
            onClickHandler: PropTypes.Requireable<(...args: any[]) => any>;
            testAutomationId: PropTypes.Requireable<string>;
        }>[]>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        className: PropTypes.Requireable<string>;
        sub: PropTypes.Requireable<boolean>;
        testAutomationId: PropTypes.Requireable<string>;
        ariaLabel: PropTypes.Requireable<string>;
        currentLabel: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        children: any[];
        testAutomationId: any;
        className: any;
        config: any;
        sub: boolean;
        readonly ariaLabel: string;
        readonly currentLabel: string;
    };
    componentDidMount(): void;
    componentWillUnmount(): void;
    routerListener: any;
    isItemSelected: (menuItem: any) => any;
    handleLinkClick: () => void;
    renderRootMenuItem: (menuItem: any, index: any) => JSX.Element;
    renderNestedMenuItem: (menuItem: any, index: any) => JSX.Element;
    renderMenuItem(menuItem: any, index: any, nested?: boolean): JSX.Element;
    renderIcon(iconName: any): JSX.Element;
    renderChildren(items: any, isParentActive: any): JSX.Element;
    render(): JSX.Element;
}
