import React from 'react';
import { BreadcrumbType, IconStringList } from '../../module';
import { AccountPopoverProps } from '../AccountPopover/AccountPopover';
import { LanguageSelectorProps } from './Common/LanguageSelector/LanguageSelector';
export type LeftNavLinkObj = {
    /** The url for the page associated with this link */
    link: string;
    /** The icon that will appear to the left of the SidebarLink name */
    icon: IconStringList;
    /** The SidebarLink name */
    name: string;
    /** Optional permissions needed to view this SidebarLink */
    permissions?: string[];
    /** Optional property - designates a link as a footer link */
    footerLink?: boolean;
};
export type LeftNavProps = {
    /** The logo will appear in the Sidebar header */
    logo: {
        /** The logo image url needed to display the logo */
        url: string;
        /** Optionally pass in a height to the logo to best fit the given space in the header. As all logos do not have the same dimensions, this will likely be necessary to implement. */
        height?: number;
        /** The Abbreviated image url */
        abbreviatedUrl?: string;
        /** The Isolated image url  **/
        isolatedUrl?: string;
    };
    /** The array of leftNavLinks */
    leftNavLinks?: LeftNavLinkObj[];
    /** The array of Breadcrumbs */
    breadcrumbs: BreadcrumbType[];
    /** Props for populating the account popover in the footer */
    accountPopoverProps: Omit<AccountPopoverProps, 'expanded' | 'closeMobileDrawer'>;
    /** Component to use for routing. We need this to be defined in each application using the LeftNav. */
    routerComponent: React.ElementType;
    /** Prop to use for routing within the routerComponent. We need this to be defined in each application using the LeftNav. */
    routerProp: string;
    /** User permission list */
    userPermissions: string[];
    /** Function to navigate to the homepage */
    navigate: () => void;
    /** Footer element */
    footer?: ({ sidebarExpanded }: {
        sidebarExpanded: boolean;
    }) => JSX.Element;
    mobileProps?: {
        /** Optionally pass in children elements to the mobile header. */
        mobileHeaderChildren?: React.ReactNode;
        /** Optionally place the hamburger menu to the right instead of the default left corner. */
        rightHamburgerMenu?: boolean;
    };
    /** Optional prop to correctly calculate the height of the desktop sidebar. This is used in instances where there is an element above or below the sidebar. i.e. A banner above the application. */
    heightOffset?: number;
    /** This prop will determine which environment the user is seeing the Sidebar. This will provide visual queues to the user so they can quickly know which environment they are in. */
    environment?: 'development' | 'staging' | 'demo' | 'production';
    /** Optional prop to configure language settings */
    languageConfig?: Omit<LanguageSelectorProps, 'expanded'>;
};
declare const LeftNav: {
    (props: LeftNavProps): JSX.Element;
    Divider: () => React.JSX.Element;
};
export { LeftNav };
