import { ApplicationRef, ChangeDetectorRef, ComponentFactoryResolver, ElementRef, Injector, OnChanges, OnDestroy, OnInit } from '@angular/core';
import { TieredMenuItemData } from './models/tiered-menu-item-data';
import { TieredMenuEventService } from './services/tiered-menu.event.service';
import { TieredMenuGlobalService } from './services/tiered-menu.global.service';
import { TieredMenuService } from './services/tiered-menu.service';
import * as i0 from "@angular/core";
export declare class TieredMenuDirective implements OnInit, OnChanges, OnDestroy {
    private readonly _elementRef;
    private readonly _appRef;
    private readonly _componentFactoryResolver;
    private readonly _injector;
    private readonly _tieredMenuEventService;
    private readonly _tieredMenuService;
    private readonly _tieredMenuGlobalService;
    private readonly _changeDetectorRef;
    items: TieredMenuItemData[];
    focusedItem: TieredMenuItemData | undefined;
    triggerEvent: 'click' | 'hover';
    private _componentRef;
    private _showTimeout?;
    private _isNested;
    private _isOpen;
    private _unsubscribe$;
    private _lastActiveElement?;
    private _previousItems;
    private _itemsAreValid?;
    private _resizeObserver;
    constructor(_elementRef: ElementRef, _appRef: ApplicationRef, _componentFactoryResolver: ComponentFactoryResolver, _injector: Injector, _tieredMenuEventService: TieredMenuEventService, _tieredMenuService: TieredMenuService, _tieredMenuGlobalService: TieredMenuGlobalService, _changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(): void;
    ngOnDestroy(): void;
    onClick(event: MouseEvent): void;
    private _createMenu;
    private _createTieredMenu;
    private _createNestedMenu;
    private _createComponent;
    private _destroy;
    private _setMenuPosition;
    private _setMenuComponentProperties;
    private _subscribeEvents;
    private _compareItems;
    private _rebuildMenu;
    private _updateServiceItems;
    static ɵfac: i0.ɵɵFactoryDeclaration<TieredMenuDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TieredMenuDirective, "[sTieredMenu]", never, { "items": { "alias": "items"; "required": false; }; "focusedItem": { "alias": "focusedItem"; "required": false; }; "triggerEvent": { "alias": "triggerEvent"; "required": false; }; }, {}, never, never, false, never>;
}
