import { CdkConnectedOverlay, ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { NzDropDownButtonComponent } from '../dropdown/nz-dropdown-button.component';
import { NzDropDownComponent } from '../dropdown/nz-dropdown.component';
import { NzMenuDirective } from './nz-menu.directive';
export declare class NzSubMenuComponent implements OnInit, OnDestroy {
    nzMenuDirective: NzMenuDirective;
    private cd;
    private nzSubMenuComponent;
    private nzDropDownComponent;
    private nzDropDownButtonComponent;
    private _open;
    private _disabled;
    private $mouseSubject;
    private unsubscribe$;
    placement: string;
    $subOpen: BehaviorSubject<boolean>;
    isInDropDown: boolean;
    isInSubMenu: boolean;
    level: number;
    triggerWidth: any;
    subMenus: QueryList<NzSubMenuComponent>;
    nzOpenChange: EventEmitter<boolean>;
    cdkOverlay: CdkConnectedOverlay;
    trigger: ElementRef;
    nzOpen: boolean;
    nzDisabled: boolean;
    readonly subItemSelected: boolean;
    readonly submenuSelected: boolean;
    readonly expandState: string;
    readonly overlayPositions: ConnectionPositionPair[];
    clickSubMenuTitle($event: MouseEvent): void;
    clickSubMenuDropDown(): void;
    readonly subMenuMode: string;
    onMouseEnterEvent(e: MouseEvent): void;
    onMouseLeaveEvent(e: MouseEvent): void;
    readonly setDropDownSubmenuClass: boolean;
    readonly setMenuSubmenuOpenClass: boolean;
    readonly setDropDownVerticalClass: boolean;
    readonly setDropDownHorizontalClass: boolean;
    readonly setDropDownDisabled: boolean;
    readonly setMenuSubmenuClass: boolean;
    readonly setMenuSubmenuSelectedClass: boolean;
    readonly setMenuVerticalClass: boolean;
    readonly setMenuHorizontalClass: boolean;
    readonly setMenuInlineClass: boolean;
    readonly setMenuDisabled: boolean;
    setTriggerWidth(): void;
    onPositionChange($event: ConnectedOverlayPositionChange): void;
    handleOpenEvent: (data: boolean) => void;
    constructor(nzMenuDirective: NzMenuDirective, cd: ChangeDetectorRef, nzSubMenuComponent: NzSubMenuComponent, nzDropDownComponent: NzDropDownComponent, nzDropDownButtonComponent: NzDropDownButtonComponent);
    ngOnInit(): void;
    ngOnDestroy(): void;
}
