import { HTMLAttributes } from "react";
import * as React from "react";
declare type NavBarState = {
    mobileOpen: boolean;
    navItems: {
        [key: string | number]: boolean;
    };
};
declare type NavBarAction = {
    type: "TOGGLE_NAV_ITEM";
    navItemKey: string | number;
} | {
    type: "TOGGLE_MOBILE_MENU";
} | {
    type: "CLOSE";
};
declare function _nextId(): number;
declare type NavBarContextType = {
    nextId: typeof _nextId;
    state: NavBarState;
    dispatch: React.Dispatch<NavBarAction>;
    lightTheme: boolean;
};
export declare const NavBarContext: React.Context<NavBarContextType>;
declare type NavBarProps = {
    children: React.ReactNode;
    lightTheme: boolean;
};
export declare const NavBar: (props: NavBarProps) => JSX.Element;
export declare const NavBarInner: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
declare type NavLinksProps = HTMLAttributes<HTMLDivElement> & {
    lightTheme: boolean;
    color: ColorType;
};
export declare const NavItemsContainer: import("styled-components").StyledComponent<({ lightTheme, color, ...rest }: NavLinksProps) => JSX.Element, import("styled-components").DefaultTheme, {}, never>;
declare type ColorType = "indigo" | "teal" | "white" | undefined;
declare type NavItemProps = {
    href?: string;
    title: React.ReactNode;
    dropdown?: React.ReactNode;
    active?: boolean;
    onClick?: () => void;
    lightTheme: boolean;
    color?: ColorType;
};
export declare const NavItem: ({ href, title, dropdown, active, onClick, color, lightTheme, }: NavItemProps) => JSX.Element;
export declare const MenuButton: () => JSX.Element;
export {};
