/**
 * @name Nav
 *
 * @description
 *  A component for rendering a vertical, usually left-aligned, navigation.
 *  This component offers a collapsable width.
 *
 * Please see the Storybook example for a more robust way of how we recommend using the Nav component.
 *
 * <Nav>
 *  <Nav.Item onClick={() => alert("Home clicked!")}>Home</Nav.Item>
 *  <Nav.Item link="https://www.teamsnap.com" linkProps={{target: "_blank"}}>External Link</Nav.Item>
 * </Nav>
 */
import * as React from 'react';
import * as PropTypes from 'prop-types';
declare const navPropTypes: {
    children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    className: PropTypes.Requireable<string>;
    mods: PropTypes.Requireable<string>;
    style: PropTypes.Requireable<object>;
    testId: PropTypes.Requireable<string>;
    otherProps: PropTypes.Requireable<object>;
    headerItem: PropTypes.Requireable<PropTypes.InferProps<{
        title: PropTypes.Requireable<string>;
        subtitle: PropTypes.Requireable<string>;
        image: PropTypes.Requireable<string>;
        useBadge: PropTypes.Requireable<boolean>;
    }>>;
    flyoutSections: PropTypes.Requireable<PropTypes.InferProps<{
        heading: PropTypes.Requireable<string>;
        tree: PropTypes.Requireable<PropTypes.InferProps<{
            title: PropTypes.Validator<string>;
            image: PropTypes.Requireable<string>;
            useBadge: PropTypes.Requireable<boolean>;
            wrapItem: PropTypes.Requireable<(...args: any[]) => any>;
            tree: PropTypes.Requireable<PropTypes.InferProps<{
                title: PropTypes.Validator<string>;
                image: PropTypes.Requireable<string>;
                useBadge: PropTypes.Requireable<boolean>;
                wrapItem: PropTypes.Requireable<(...args: any[]) => any>;
                tree: PropTypes.Requireable<PropTypes.InferProps<{
                    title: PropTypes.Validator<string>;
                    image: PropTypes.Requireable<string>;
                    useBadge: PropTypes.Requireable<boolean>;
                    wrapItem: PropTypes.Requireable<(...args: any[]) => any>;
                }>[]>;
            }>[]>;
        }>[]>;
    }>[]>;
    includeOverlay: PropTypes.Requireable<boolean>;
    openItems: PropTypes.Requireable<boolean>;
};
declare const itemPropTypes: {
    icon: PropTypes.Requireable<string>;
    iconModifiers: PropTypes.Requireable<string>;
    isActive: PropTypes.Requireable<boolean>;
    onClick: PropTypes.Requireable<(...args: any[]) => any>;
    wrapItem: PropTypes.Requireable<(...args: any[]) => any>;
    children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
};
declare type NavType = React.FunctionComponent<PropTypes.InferProps<typeof navPropTypes>>;
declare type ItemType = React.FunctionComponent<PropTypes.InferProps<typeof itemPropTypes>>;
declare const Nav: NavType & {
    Item: ItemType;
};
export default Nav;
