import type { PathRouteProps } from 'react-router-dom';
import type { ReactNode } from 'react';
export interface NavBarProps extends React.HTMLAttributes<HTMLElement> {
    passProps?: object;
    /** Support @testing-library/react `screen.getByTestId` */
    'data-testid'?: string;
    navRoutes: NavRoute;
    logoProps?: NavBarLogoProps;
    currentPath?: string | Location;
    isnextjs?: boolean;
    topText?: string;
    subText?: string;
    setLoading?: (loading: boolean) => void;
    orientation?: 'horizontal' | 'vertical';
    tabletBreakpoint?: number;
    desktopBreakpoint?: number;
    contentClassName?: string;
    mainClassName?: string;
    loading?: boolean;
}
export type NavRoute = {
    [key: string]: PathRouteProps & {
        noRoute?: boolean;
        name: string;
        visibleInNav: boolean;
        subNavigation?: SubNavigation;
        icon?: ReactNode;
        children?: ReactNode;
        infoWrapperClassName?: string;
        inThumbBar?: boolean;
        buttonType?: string;
    };
};
export type SubNavigation = {
    [key: string]: PathRouteProps & {
        noRoute?: boolean;
        name: string;
        path: string;
        icon?: ReactNode;
        subRoutes?: SubRoute;
        children?: ReactNode;
        infoWrapperClassName?: string;
    };
};
export type SubRoute = {
    [key: string]: PathRouteProps & {
        noRoute?: boolean;
        name: string;
        path: string;
        icon?: ReactNode;
        subRoutes?: SubRoute;
        children?: ReactNode;
    };
};
export type NavBarLogoProps = {
    logoUrl: string;
    width?: number;
    height?: number;
    inThumbBar?: boolean;
};
export interface NavBarWrapperProps extends React.HTMLAttributes<HTMLElement> {
    passProps?: object;
    /** Support @testing-library/react `screen.getByTestId` */
    'data-testid'?: string;
    navRoutes: NavRoute;
    logoProps: NavBarLogoProps;
    setLoading?: (loading: boolean) => void;
    tabletBreakpoint?: number;
    desktopBreakpoint?: number;
    contentClassName?: string;
    mainClassName?: string;
    loading?: boolean;
}
