import * as React from 'react'; export interface NavBarItem { content: React.ReactNode; display?: 'mobile' | 'pin' | 'lead'; id: string; } export interface NavBarToggleEvent { shouldOpen: boolean; } export interface NavBarProps { /** * Sets component display mode. By default automatic mode is used, * which depends on the component's width. */ mode?: 'hamburger' | 'full'; /** * The optional logo to define. Either a string or a React element. * A string is interpreted as an image URL, which will displayed in * an 57x57 large image inside a link component. */ logo?: React.ReactChild; /** * Determines if the menu is opened or closed. If the value is set the * control goes into controlled mode. Omitting this value will trigger * the managed mode. */ open?: boolean; /** * Event emitted once the hamburger menu should be toggled. */ onToggle?(e: NavBarToggleEvent): void; /** * Option to hide the standard menu and only display the logo, if available. * @default false */ hidden?: boolean; /** * The menu items to show. */ items: Array; /** * Optional additional content to place inside the nav bar container. */ children?: React.ReactNode; } export interface NavBarState { controlledMode: boolean; controlledOpen: boolean; open: boolean; mode: 'hamburger' | 'full' | undefined; } interface DesktopHeaderProps { leads: Array; pins: Array; } interface MobileHeaderProps { entries: Array; onToggle(): void; open: boolean; } /** * A simple navigation bar that is responsive by nature. */ export declare class NavBar extends React.Component { constructor(props: NavBarProps); UNSAFE_componentWillReceiveProps(nextProps: NavBarProps): void; private toggle; render(): JSX.Element; static inner: { readonly StyledNavBar: any; readonly StyledLogoLink: any; readonly DesktopHeader: React.SFC & { inner: { readonly StyledLinks: any; readonly StyledLead: any; readonly HeaderStackPanel: any; readonly StyledPin: any; }; }; readonly MobileHeader: React.SFC & { inner: { readonly HeaderStackPanel: any; readonly StyledMenuLink: any; readonly Icon: React.FC & { inner: { readonly StyledIcon: any; }; }; readonly StyledMenu: any; readonly StyledMenuItems: any; readonly StyledMenuItem: any; }; }; }; } export {};