import { FocusMonitor } from "@angular/cdk/a11y";
import { AfterViewInit, ElementRef, EventEmitter, OnChanges, OnDestroy, QueryList, Renderer2, SimpleChanges } from "@angular/core";
import { Subject } from "rxjs";
import { ButtonSizeType } from "../../../lib/button/public-api";
import { PopupComponent } from "../../popup-adapter/popup-adapter.component";
import { MenuGroupComponent } from "../menu-item/menu-group/menu-group.component";
import { MenuItemBaseComponent } from "../menu-item/menu-item/menu-item-base";
import { MenuKeyControlService } from "../menu-key-control.service";
import { MenuPopupComponent } from "../menu-popup/menu-popup.component";
import { IMenuGroup } from "../public-api";
import * as i0 from "@angular/core";
/**
 * Examples: <example-url>./../examples/index.html#/menu</example-url><br />
 * "nui-menu" provides simple dropdown menu option with custom items:
 * "nui-header", "nui-divider", "nui-action", "nui-link", "nui-option"
 */
export declare class MenuComponent implements AfterViewInit, OnChanges, OnDestroy {
    private keyControlService;
    private renderer;
    private focusMonitor;
    iconSize: string;
    iconColor: string;
    widthOfPopup: string;
    contextClass: string;
    /**
     * Should dropdown be appended to body or not
     */
    appendToBody: boolean;
    /**
     * sets aria-label for menu button
     */
    ariaLabel: string;
    /**
     * sets title/name for menu button
     */
    title: string;
    /**
     * sets size of menu button and caret icon
     * (take a look on nui-button possible sizes)
     */
    size?: ButtonSizeType;
    /**
     * sets styles for menu button
     * (take a look on nui-button possible styles)
     */
    displayStyle?: string;
    /**
     * Disables menu and prevents it from opening
     */
    isDisabled: boolean;
    /**
     * adds additional icon at the left of menu button
     * (take a look on nui-icon possible values)
     */
    icon: string;
    /**
     *Value to be used as menu items data.
     */
    itemsSource?: IMenuGroup[];
    /**
     * Event emitted when menu is blurred.
     */
    blurred: EventEmitter<any>;
    menuOpenStream: Subject<void>;
    menuItems: QueryList<MenuItemBaseComponent>;
    menuGroups: QueryList<MenuGroupComponent>;
    popup: PopupComponent;
    menuPopup: MenuPopupComponent;
    menuToggle: ElementRef;
    private menuKeyControlListeners;
    private focusMonitorSubscription;
    constructor(keyControlService: MenuKeyControlService, renderer: Renderer2, focusMonitor: FocusMonitor);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    isMenuCompact(): boolean;
    isTitlePresent(): boolean;
    onBlur(event: any): void;
    onMenuOpen(): void;
    isJustified(): boolean;
    private setKeyboardManagerServiceData;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MenuComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MenuComponent, "nui-menu", never, { "widthOfPopup": { "alias": "widthOfPopup"; "required": false; }; "contextClass": { "alias": "contextClass"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "title": { "alias": "title"; "required": false; }; "size": { "alias": "size"; "required": false; }; "displayStyle": { "alias": "displayStyle"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "itemsSource": { "alias": "itemsSource"; "required": false; }; }, { "blurred": "blurred"; }, ["menuItems", "menuGroups"], ["*"], false, never>;
}
