import { ElementRef, EventEmitter, OnInit, OnDestroy, Renderer2 } from '@angular/core';
import { Router } from '@angular/router';
import { ControlValueAccessor } from '@angular/forms';
import { EuiButtonComponent } from '../eui-button';
import { EuiDropdownButtonMenuItem } from './models/eui-dropdown-button-menu-item.model';
import { BaseDirective } from '../../base.directive';
import { EuiDropdownButtonMenuService } from './eui-dropdown-button.service';
import * as i0 from "@angular/core";
export declare const EUI_DROPDOWN_BUTTON_MENU_VALUE_ACCESSOR: any;
export declare class EuiDropdownButtonMenuComponent extends BaseDirective implements OnInit, ControlValueAccessor, OnDestroy {
    private nestedItemService;
    private router;
    private renderer;
    menuItems: EuiDropdownButtonMenuItem[];
    get isLabelUpdatedFromSelectedItem(): any;
    set isLabelUpdatedFromSelectedItem(value: any);
    get isDropDownRightAligned(): boolean;
    set isDropDownRightAligned(value: boolean);
    _isDropDownRightAligned: boolean;
    itemSelect: EventEmitter<EuiDropdownButtonMenuItem>;
    buttonTriggerRef: ElementRef;
    euiButton: EuiButtonComponent;
    get cssClasses(): string;
    private _isLabelUpdatedFromSelectedItem;
    private destroy$;
    constructor(nestedItemService: EuiDropdownButtonMenuService, router: Router, renderer: Renderer2);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * checks the keys pressed and applies corresponding actions
     * @param event The key event that is pressed
     * @param item The menu item passed
    */
    onKeyDown(event: KeyboardEvent, item: EuiDropdownButtonMenuItem): void;
    /**
     * Applies the item's actions performed either on click or on keydown
     * @param item The menu item passed
    */
    itemActions(item: EuiDropdownButtonMenuItem): void;
    /**
     * focuses the button trigger after an item action is performed and the popup closes
    */
    focusButtonTrigger(): void;
    /**
     * Calls the itemActions after an item is clicked
     * @param item The menu item passed
    */
    onClick(item: EuiDropdownButtonMenuItem): void;
    /**
     * Passes the nested item to the parent component to apply the item actions
     * @param item The menu item passed
    */
    onNestedItemSelect(item: EuiDropdownButtonMenuItem): void;
    /**
     * Generates an Icon Button when the item passed contains the iconClass attribute
     * @param item The menu item passed
    */
    generateIconButton(item: EuiDropdownButtonMenuItem): void;
    writeValue(item: EuiDropdownButtonMenuItem): void;
    setDisabledState(isDisabled: boolean): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    private propagateChange;
    private propagateTouched;
    static ɵfac: i0.ɵɵFactoryDef<EuiDropdownButtonMenuComponent, never>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<EuiDropdownButtonMenuComponent, "eui-dropdown-button-menu", never, { "menuItems": "menuItems"; "isLabelUpdatedFromSelectedItem": "isLabelUpdatedFromSelectedItem"; "isDropDownRightAligned": "isDropDownRightAligned"; }, { "itemSelect": "itemSelect"; }, ["buttonTriggerRef", "euiButton"], ["button"]>;
}
