import { UrlResolver } from '../utils/allowedAxosDomains'; export interface Logo { id: string; url: string; alt: string; } export interface NavItem { id: string; url: string; label: string; descriptiveTextAriaLabel?: string; icon?: string | undefined; ariaLabel?: string | undefined; target?: any; } export interface NavItems extends NavItem { items?: NavItems[]; subItems?: NavItems[]; menuItems?: Menu; hasMenu?: boolean; rightSide?: boolean | undefined; dropdown?: boolean | undefined; displayInNavigation?: boolean | undefined; } export interface SubNavItems extends NavItem { subItems: (NavItems | NavItem | undefined)[]; menuItems?: Menu; hasMenu?: boolean; dropdown: boolean | undefined; rightSide?: boolean | undefined; displayInNavigation?: boolean | undefined; } export interface Navigation { subNavBar?: SubNavItems[]; logo?: Logo; quickLinks: NavItem[]; } export interface Menu { target: Record; heading: string; bannerHeading: string; bannerDescription: string; helpAndSupportLink?: string; bannerImage: { fields: { title: string; file: { url: string; details: { size: number; image: { width: number; height: number; }; }; fileName: string; contentType: string; }; }; }; bannerCta?: { id: string; label: string; url: string; ariaLabel?: string; variant?: string; type?: "Button" | "Chevron"; newTab?: boolean; }[]; subItems?: NavItems[]; } export interface PrimaryMenu { sys: { id: string; contentType: { sys: { id: "primaryNavigation"; }; }; }; fields: { display: string; displayInNavigation: boolean; rightSide: boolean; dropdown: boolean; target: { sys: { id: string; contentType: { sys: { id: string; }; }; }; fields: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; icon: { fields: { image: { fields: { file: { url: string; }; }; }; }; }; }; }; children: Array; }; } export interface QuickLink { sys: { id: string; contentType: { sys: { id: string; }; }; }; fields: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; icon: { fields: { image: { fields: { file: { url: string; }; }; }; }; }; }; } export interface HyperLinkType { sys: { id: string; contentType: { sys: { id: "hyperlink"; }; }; }; fields: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; }; } export interface CallToActionType { sys: { id: string; contentType: { sys: { id: "hyperlink"; }; }; }; fields: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; icon: { fields: { image: { fields: { file: { url: string; }; }; }; }; }; }; } export interface TertiaryMenu { sys: { id: string; contentType: { sys: { id: "tertiaryNavigation"; }; }; }; fields: { displayText?: string; target: CallToActionType; descriptiveTextAriaLabel?: string; children: Array; targetUrl?: string; icon: { fields: { file: { url: string; }; }; }; }; } export interface SecondaryMenu { sys: { id: string; contentType: { sys: { id: "secondaryNavigation"; }; }; }; fields: { display: string; target: HyperLinkType; children: Array; heading: string; bannerHeading: string; bannerDescription: string; helpAndSupportLink?: string; bannerImage: { fields: { title: string; file: { url: string; details: { size: number; image: { width: number; height: number; }; }; fileName: string; contentType: string; }; }; }; bannerCtaLinks?: Array<{ sys: { id: string; type: string; }; fields: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; variant?: string; type?: "Button" | "Chevron"; openNewTab?: boolean; }; }>; }; } type PrimaryChildrens = SecondaryMenu | HyperLinkType; export interface MenuObject { sys: { id: string; contentType: { sys: { id: string; }; }; }; fields: { label: string; description: string; display: string; target: Array<{ sys: { id: string; contentType: { sys: { id: string; }; }; }; fields: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; }; }>; logo: { sys: { id: string; type: string; }; fields: { title: string; image: { fields: { file: { url: string; }; }; }; }; }; quickLinks: Array<{ sys: { id: string; contentType: { sys: { id: string; }; }; }; fields: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; icon: { fields: { image: { fields: { file: { url: string; }; }; }; }; }; }; }>; children: PrimaryMenu[]; }; } export declare const getFirstLevelMenuItems: (menuData: MenuObject) => ({ id: string; label: string; url: string; descriptiveTextAriaLabel: string; rightSide: boolean; dropdown: boolean; } | { id?: undefined; label?: undefined; url?: undefined; descriptiveTextAriaLabel?: undefined; rightSide?: undefined; dropdown?: undefined; })[]; export declare const getLogo: (menuData: MenuObject) => { id: string; url: string; alt: string; }; export declare const getQuickLinks: (menuData: MenuObject) => NavItem[]; export declare const extractChildrenTargets: (children: PrimaryChildrens[]) => (NavItem | { id: string; label: string; url: string; hasMenu: boolean; descriptiveTextAriaLabel: string; menuItems: { target: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; id: string; }; heading: string; bannerHeading: string; bannerDescription: string; helpAndSupportLink: string | undefined; bannerImage: { fields: { title: string; file: { url: string; details: { size: number; image: { width: number; height: number; }; }; fileName: string; contentType: string; }; }; }; bannerCta: { id: string; label: string; url: string; ariaLabel: string; variant: string | undefined; type: "Button" | "Chevron" | undefined; newTab: boolean | undefined; }[] | undefined; subItems: { items: { id: string; label: string; descriptiveTextAriaLabel: string; url: string; icon: string; }[]; id: string; label: string; icon: string; descrictiveTextAriaLabel: string; url: string; }[]; }; } | undefined)[]; export declare const getNavMenuItems: (menuData: MenuObject) => { id: string; label: string; url: string; descriptiveTextAriaLabel: string; dropdown: boolean; rightSide: boolean; displayInNavigation: boolean; subItems: (NavItem | { id: string; label: string; url: string; hasMenu: boolean; descriptiveTextAriaLabel: string; menuItems: { target: { displayText: string; targetUrl: string; descriptiveTextAriaLabel: string; id: string; }; heading: string; bannerHeading: string; bannerDescription: string; helpAndSupportLink: string | undefined; bannerImage: { fields: { title: string; file: { url: string; details: { size: number; image: { width: number; height: number; }; }; fileName: string; contentType: string; }; }; }; bannerCta: { id: string; label: string; url: string; ariaLabel: string; variant: string | undefined; type: "Button" | "Chevron" | undefined; newTab: boolean | undefined; }[] | undefined; subItems: { items: { id: string; label: string; descriptiveTextAriaLabel: string; url: string; icon: string; }[]; id: string; label: string; icon: string; descrictiveTextAriaLabel: string; url: string; }[]; }; } | undefined)[]; }[]; export declare const getPathFromNavUrl: (url: string | undefined, resolveUrl: UrlResolver) => string; export {};