import { AfterViewChecked, ElementRef, Renderer2 } from '@angular/core';
import { MenuService } from '../../../services/app.menu.service';
import { MenuItem } from 'primeng/api';
import { Menubar } from 'primeng/menubar';
import * as i0 from "@angular/core";
export declare class PortalMenuHorizontalComponent implements AfterViewChecked {
    private menuService;
    private elementRef;
    private renderer;
    menubar?: Menubar;
    menuItems: MenuItem[];
    private _mainMenuItems;
    private _sizeCache;
    constructor(menuService: MenuService, elementRef: ElementRef, renderer: Renderer2);
    ngAfterViewChecked(): void;
    onMenuItemsChange(menuItems: MenuItem[]): void;
    onResize(): void;
    invalidateCache(): void;
    updateSizeCache(): void;
    /**
     * Priority+ navigation pattern:
     * * Fits menu items into parent container width
     * * Shows 'more' element for hidden items
     * * Limitations: does not respect margin between menu items
     *
     * Implementation details:
     *
     * The algorithm works in two phases.
     * 1. The menubar is rendered with all menu items + a placeholder 'more' item.
     *    The menubar can be overflowing now visually for a very brief moment.
     *    The rendered view is used to fill the size cache by checking the width of each element.
     * 2. The size cache is used to calculate the visible elements.
     *    The menubar items will be set according to the calculation.
     *
     * Everytime the menu items update, the algorithm starts in phase 1.
     * Everytime the viewport resizes, the algorithm can skip phase 1 and use the cache.
     */
    updateVisibleMenuItems(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PortalMenuHorizontalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PortalMenuHorizontalComponent, "ocx-portal-menu-horizontal", never, {}, {}, never, never, false, never>;
}
