import { CdkOverlayOrigin } from '@angular/cdk/overlay';
import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChanges } from '@angular/core';
import { DevConfigService } from 'ng-devui/utils';
import { Observable, ReplaySubject } from 'rxjs';
import { DropDownService } from './dropdown.service';
import * as i0 from "@angular/core";
export declare class DropDownDirective implements OnDestroy, OnChanges, AfterContentInit {
    private dropdownService;
    private cdr;
    el: ElementRef;
    private devConfigService;
    parentDropdown: DropDownDirective;
    private doc;
    dropdownChildren: QueryList<DropDownDirective>;
    private hoverSubscription;
    /**
     * 控制是否打开dropdown，绑定一个devui-dropdown-open class
     */
    set isOpen(value: boolean);
    get isOpen(): boolean;
    mouseenterFlag: boolean;
    startAnimation: boolean;
    addClass: boolean;
    disabled: boolean;
    showAnimation: boolean;
    /**
     * dropdown触发方式
     */
    trigger: 'click' | 'hover' | 'manually';
    /**
     * 关闭区域，默认点击菜单链接也会关闭，blank点击其他空白区域才关闭
     */
    closeScope: 'all' | 'blank' | 'none';
    closeOnMouseLeaveMenu: boolean;
    toggleEvent: EventEmitter<boolean>;
    visibleSubject: ReplaySubject<boolean>;
    private _isOpen;
    menuEl: ElementRef;
    toggleEl: ElementRef;
    cdkConnectedOverlayOrigin: CdkOverlayOrigin;
    private _appendToBody;
    document: Document;
    set appendToBody(bool: boolean);
    get appendToBody(): boolean;
    set dropDownMenu(dropdownMenu: any);
    set dropDownToggle(dropdownToggle: any);
    constructor(dropdownService: DropDownService, cdr: ChangeDetectorRef, el: ElementRef, devConfigService: DevConfigService, parentDropdown: DropDownDirective, doc: any);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    ngAfterContentInit(): void;
    toggle(): boolean;
    focusToggleElement(): void;
    updateCdkConnectedOverlayOrigin(): void;
    subscribeHoverAction(observable: Observable<boolean>): void;
    private unsubscribeHoverAction;
    handleHoverSubscriptionIfTriggerIsHover(): void;
    simulateEventDispatch($event: any, target?: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DropDownDirective, [null, null, null, null, { optional: true; skipSelf: true; }, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DropDownDirective, "[dDropDown]", ["d-dropdown"], { "isOpen": "isOpen"; "disabled": "disabled"; "showAnimation": "showAnimation"; "trigger": "trigger"; "closeScope": "closeScope"; "closeOnMouseLeaveMenu": "closeOnMouseLeaveMenu"; }, { "toggleEvent": "toggleEvent"; }, ["dropdownChildren"], never, false>;
}
