import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, Renderer2, TemplateRef } from '@angular/core';
import { MenuItem, PrimeNGConfig, PrimeTemplate } from 'primeng/api';
import { VoidListener } from 'primeng/ts-helpers';
import { Subject, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/router";
import * as i3 from "primeng/ripple";
import * as i4 from "primeng/tooltip";
import * as i5 from "primeng/api";
import * as i6 from "primeng/icons/bars";
import * as i7 from "primeng/icons/angledown";
import * as i8 from "primeng/icons/angleright";
export declare class MenubarService {
    autoHide: boolean | undefined;
    autoHideDelay: number | undefined;
    readonly mouseLeaves: Subject<boolean>;
    readonly mouseLeft$: import("rxjs").Observable<boolean>;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenubarService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MenubarService>;
}
export declare class MenubarSub implements OnInit, OnDestroy {
    private document;
    private platformId;
    el: ElementRef;
    renderer: Renderer2;
    private cd;
    private menubarService;
    private menubar;
    item: MenuItem | undefined;
    root: boolean | undefined;
    autoZIndex: boolean;
    baseZIndex: number;
    mobileActive: boolean | undefined;
    autoDisplay: boolean | undefined;
    get parentActive(): boolean;
    set parentActive(value: boolean);
    leafClick: EventEmitter<any>;
    _parentActive: boolean | undefined;
    documentClickListener: VoidListener;
    menuHoverActive: boolean;
    activeItem: any;
    mouseLeaveSubscriber: Subscription | undefined;
    constructor(document: Document, platformId: any, el: ElementRef, renderer: Renderer2, cd: ChangeDetectorRef, menubarService: MenubarService, menubar: Menubar);
    ngOnInit(): void;
    onItemClick(event: MouseEvent, item: MenuItem): void;
    onItemMouseLeave(): void;
    onItemMouseEnter(event: MouseEvent, item: MenuItem): void;
    onLeafClick(): void;
    bindDocumentClickListener(): void;
    unbindDocumentClickListener(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenubarSub, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MenubarSub, "p-menubarSub", never, { "item": { "alias": "item"; "required": false; }; "root": { "alias": "root"; "required": false; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "mobileActive": { "alias": "mobileActive"; "required": false; }; "autoDisplay": { "alias": "autoDisplay"; "required": false; }; "parentActive": { "alias": "parentActive"; "required": false; }; }, { "leafClick": "leafClick"; }, never, never, false, never>;
}
/**
 * Menubar is a horizontal menu component.
 * @group Components
 */
export declare class Menubar implements AfterContentInit, OnDestroy, OnInit {
    private document;
    private platformId;
    el: ElementRef;
    renderer: Renderer2;
    cd: ChangeDetectorRef;
    config: PrimeNGConfig;
    private menubarService;
    /**
     * An array of menuitems.
     * @group Props
     */
    model: MenuItem[] | undefined;
    /**
     * Inline style of the element.
     * @group Props
     */
    style: {
        [klass: string]: any;
    } | null | undefined;
    /**
     * Class of the element.
     * @group Props
     */
    styleClass: string | undefined;
    /**
     * Whether to automatically manage layering.
     * @group Props
     */
    autoZIndex: boolean;
    /**
     * Base zIndex value to use in layering.
     * @group Props
     */
    baseZIndex: number;
    /**
     * Whether to show a root submenu on mouse over.
     * @group Props
     */
    autoDisplay: boolean | undefined;
    /**
     * Whether to hide a root submenu when mouse leaves.
     * @group Props
     */
    autoHide: boolean | undefined;
    /**
     * Delay to hide the root submenu in milliseconds when mouse leaves.
     * @group Props
     */
    autoHideDelay: number;
    templates: QueryList<PrimeTemplate> | undefined;
    menubutton: ElementRef | undefined;
    rootmenu: MenubarSub | undefined;
    startTemplate: TemplateRef<any> | undefined;
    endTemplate: TemplateRef<any> | undefined;
    menuIconTemplate: TemplateRef<any> | undefined;
    submenuIconTemplate: TemplateRef<any> | undefined;
    mobileActive: boolean | undefined;
    outsideClickListener: VoidListener;
    mouseLeaveSubscriber: Subscription | undefined;
    constructor(document: Document, platformId: any, el: ElementRef, renderer: Renderer2, cd: ChangeDetectorRef, config: PrimeNGConfig, menubarService: MenubarService);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    toggle(event: MouseEvent): void;
    bindOutsideClickListener(): void;
    hide(): void;
    onLeafClick(): void;
    unbindOutsideClickListener(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Menubar, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Menubar, "p-menubar", never, { "model": { "alias": "model"; "required": false; }; "style": { "alias": "style"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "autoDisplay": { "alias": "autoDisplay"; "required": false; }; "autoHide": { "alias": "autoHide"; "required": false; }; "autoHideDelay": { "alias": "autoHideDelay"; "required": false; }; }, {}, ["templates"], ["*"], false, never>;
}
export declare class MenubarModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<MenubarModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<MenubarModule, [typeof Menubar, typeof MenubarSub], [typeof i1.CommonModule, typeof i2.RouterModule, typeof i3.RippleModule, typeof i4.TooltipModule, typeof i5.SharedModule, typeof i6.BarsIcon, typeof i7.AngleDownIcon, typeof i8.AngleRightIcon], [typeof Menubar, typeof i2.RouterModule, typeof i4.TooltipModule, typeof i5.SharedModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<MenubarModule>;
}
