import { default as React } from 'react'; import { BreadcrumbType } from '../Breadcrumbs/Common/BreadcrumbTypes'; import { IconStringList } from '../Icons/Icon.models'; 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; /** Optional property for exact match of url with breadcrumb link */ exactLinkMatch?: boolean; }; export type LeftNavProps = { /** The logo will appear in the Sidebar header */ logo: { /** The logo image url needed to display the logo */ url: string; /** The Abbreviated image url */ abbreviatedUrl?: string; /** The Isolated image url **/ isolatedUrl?: string; /** Optional maximum height for the logo */ maxHeight?: string | number; }; /** The array of leftNavLinks */ leftNavLinks?: LeftNavLinkObj[]; /** The array of Breadcrumbs */ breadcrumbs: BreadcrumbType[]; /** Props for populating the account popover in the footer */ accountPopoverProps: Omit; /** 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; }) => React.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; /** Optional prop to hide the logo */ hideLogo?: boolean; /** Optional prop to hide the copyright */ hideCopyright?: boolean; /** Optional prop to add a test id to the LeftNav for QA testing */ qaTestId?: string; /** Optional prop to match a specific link segment index to the breadcrumb link */ linkSegmentIndexToMatch?: number; }; declare const LeftNav: { (props: LeftNavProps): React.JSX.Element; Divider: () => import("react/jsx-runtime").JSX.Element; }; export { LeftNav };