import React from "react"; //#region src/types.d.ts type NavbarBreakpoint = "desktop" | "tablet" | "mobile"; type NavbarItemStyle = { linkColor?: string; linkFontSize?: number; linkFontWeight?: number; linkTextTransform?: string; hoverType?: "underline" | "background" | "color"; hoverLinkColor?: string; }; type NavbarItem = { id: string | number; label: string; type: "category" | "page" | "externalLink"; isClickable: boolean; showChildsOn: "hover" | "click"; visible?: boolean; bss_customer_group?: string[]; url?: string; function?: string; openInNewTab?: boolean; styleOverrides?: Partial; childs?: NavbarItem[]; blocks?: any[]; /** Mega-menu column index (0 = first column). */ column?: number; /** Parent category id for nested mega-menu branches (debug / pre-merge). */ nestedIn?: number | null; }; type NavbarProps = { hoverType?: "underline" | "background" | "color"; items: Record; component: Record; megamenuColumnLayout?: boolean; onItemClick?: (link: NavbarItem) => void; onItemHover?: (link: NavbarItem) => void; onMobileOpenChange?: (open: boolean) => void; mobileTopSlot?: React.ReactNode | ((close: () => void) => React.ReactNode); mobileBottomSlot?: React.ReactNode | ((close: () => void) => React.ReactNode); /** Label shown next to the burger trigger (desktop only). Pass a localized node. */ burgerLabel?: React.ReactNode; /** Label shown next to the overlay-pane back chevron (mobile/tablet). Pass a localized node. */ backLabel?: React.ReactNode; /** Side the mobile/tablet drawer slides in from. Defaults to "left". */ drawerSide?: "left" | "right"; /** Underline shown under a group's label while its accordion panel is open (mobile/tablet drawer). Defaults to true. Does not affect the chevron icon. */ showOpenIndicator?: boolean; /** Render mobile/tablet drawer in document.body so it covers site header/minibar. Defaults to false. */ mobileDrawerPortal?: boolean; /** * Mobile accordion row borders: `group` = single border after expanded block (default); * `each` = full-width border on every row (legacy High-style). */ mobileItemBorders?: "group" | "each"; /** CSS variables / inline styles applied to the mobile drawer root (use when portaled). */ shellStyle?: React.CSSProperties; /** Render Puck blocks in mobile/tablet drawers (accordion panels and mobile-menu drill-down). Defaults to false. */ showMobileNavBlocks?: boolean; }; declare const NavbarType: { readonly NavbarAccordion: "navbar-accordion"; readonly MobileMenu: "mobile-menu"; readonly SidebarFlyout: "sidebar-flyout"; }; type NavbarType = (typeof NavbarType)[keyof typeof NavbarType]; //#endregion //#region src/navbar.d.ts declare const Navbar: (props: NavbarProps) => import("react").JSX.Element | null; //#endregion //#region src/lib/filter-nav-items.d.ts /** * Mirrors @tbd_ecommerce/skin-styles-utils getUserMemberGroup so in-package * filtering stays aligned with brand-side filterNavbarItemsForUser. */ declare function getUserMemberGroup(): string; declare function filterNavItems(items: NavbarItem[], userMemberGroup: string): NavbarItem[]; declare function filterNavItemsForCurrentUser(items: NavbarItem[]): NavbarItem[]; //#endregion export { Navbar, NavbarBreakpoint, NavbarItem, NavbarItemStyle, NavbarProps, NavbarType, filterNavItems, filterNavItemsForCurrentUser, getUserMemberGroup };