import * as PropTypes from "prop-types";
import * as React from "react";
import { NavLink } from "./NavLink";
import { NavGroup } from "./NavGroup";
import { ChildrenOf } from "../utils/types";
import "./LeftNav.less";
export interface Props {
    children?: LeftNavChildren;
    className?: string;
    closeSubNavOnBlur?: boolean;
    collapseOnSubNavOpen?: boolean;
    collapsed?: boolean;
    narrow?: boolean;
    withActiveNavGroups?: boolean;
    withTooltips?: boolean;
}
interface State {
    openNavGroup: string;
}
declare type LeftNavChildren = ChildrenOf<typeof NavLink | typeof NavGroup>;
export declare const cssClass: {
    COLLAPSED: string;
    CONTAINER: string;
    NARROW: string;
    SUBNAV_CONTENT_ANIM: string;
    SUBNAV_CONTENT: string;
    SUBNAV_OPEN: string;
    SUBNAV: string;
    TOPNAV_COLLAPSED: string;
    TOPNAV: string;
    WITH_SUBNAV_OPEN: string;
};
export declare class LeftNav extends React.PureComponent<Props, State> {
    static propTypes: {
        children: PropTypes.Requireable<any>;
        className: PropTypes.Requireable<string>;
        closeSubNavOnBlur: PropTypes.Requireable<boolean>;
        collapseOnSubNavOpen: PropTypes.Requireable<boolean>;
        collapsed: PropTypes.Requireable<boolean>;
        narrow: PropTypes.Requireable<boolean>;
        withActiveNavGroups: PropTypes.Requireable<boolean>;
        withTooltips: PropTypes.Requireable<boolean>;
    };
    static NavLink: typeof NavLink;
    static NavGroup: typeof NavGroup;
    constructor(props: Props);
    _getNonEmptyChildren(children: LeftNavChildren): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, any>) | (new (props: any) => React.Component<any, any, any>)>[];
    render(): JSX.Element;
    _onRootClose(): void;
}
export {};
