import { UIMenu, WebsitePage } from '@orderlyshop/core-client';
import { N as NavigationItem, a as NavigationLayout } from './types-CeigwmOf.js';
import './query.js';

declare class NavigationController extends EventTarget {
    items: NavigationItem[];
    activePath: string;
    expandedIds: Set<string>;
    menuOpen: boolean;
    setItems(items: NavigationItem[]): void;
    setActivePath(path: string): void;
    setExpandedIds(ids: Iterable<string>): void;
    toggle(id: string): void;
    closeAll(): void;
    openMenu(): void;
    closeMenu(): void;
    toggleMenu(): void;
    select(item: NavigationItem): void;
    isActive(item: NavigationItem): boolean;
    private emitChange;
}
declare abstract class OrderlyNavigationElement extends HTMLElement {
    static observedAttributes: string[];
    readonly controller: NavigationController;
    private readonly menuPanelId;
    private disconnectResponsiveTemplates?;
    private lastResponsiveTemplateSignature;
    get sticky(): boolean;
    set sticky(value: boolean);
    get layout(): NavigationLayout;
    set layout(value: NavigationLayout);
    get layoutDesktop(): NavigationLayout;
    set layoutDesktop(value: NavigationLayout);
    get layoutMobile(): NavigationLayout;
    set layoutMobile(value: NavigationLayout);
    get persistState(): boolean;
    set persistState(value: boolean);
    get stateKey(): string;
    set stateKey(value: string);
    connectedCallback(): void;
    attributeChangedCallback(name: string): void;
    disconnectedCallback(): void;
    refresh(): void;
    closeAll(): void;
    openMenu(): void;
    closeMenu(): void;
    toggleMenu(): void;
    protected abstract getNavigationItems(): NavigationItem[];
    protected render(): void;
    protected renderAndSyncResponsiveSignature(): void;
    private updateNavigationState;
    private usesTieredNavigationLayout;
    private effectiveLayout;
    private currentResponsiveSignature;
    private setDesktopBranch;
    private setDesktopSubBranch;
    private collapseDesktopChildBranch;
    private readonly onControllerChange;
    private readonly onControllerSelect;
    private readonly onClick;
    private readonly onMouseLeave;
    private readonly onFocusIn;
    private readonly onFocusOut;
    private readonly onKeyDown;
    private readonly onDocumentClick;
    private restorePersistedState;
    private persistCurrentState;
    private storageKey;
}
declare class OrderlyNavigationMenuElement extends OrderlyNavigationElement {
    items: NavigationItem[];
    protected getNavigationItems(): NavigationItem[];
}
declare function navigationItemsFromUIMenu(menus: UIMenu[]): NavigationItem[];
declare function navigationItemsFromWebsitePages(pages: WebsitePage[]): NavigationItem[];
declare function navigationPersistsState(element: Element | undefined): boolean;

export { NavigationController, OrderlyNavigationElement, OrderlyNavigationMenuElement, navigationItemsFromUIMenu, navigationItemsFromWebsitePages, navigationPersistsState };
