import { ComponentFactoryResolver, ComponentRef, ElementRef, Injector, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
import { OverlayContainerRef } from 'ng-devui/overlay-container';
import { DevConfigService } from 'ng-devui/utils';
import { Subject } from 'rxjs';
import { PopoverComponent } from './popover.component';
import { PopoverType, PositionType, TriggerType } from './popover.types';
import * as i0 from "@angular/core";
export declare class PopoverDirective implements OnInit, OnDestroy {
    private triggerElementRef;
    private overlayContainerRef;
    private viewContainerRef;
    private injector;
    private componentFactoryResolver;
    private devConfigService;
    private doc;
    popoverComponentRef: ComponentRef<PopoverComponent>;
    _content: string | HTMLElement | TemplateRef<any>;
    private subscription;
    /**
     * popover内容
     */
    set content(_popoverContent: any);
    /**
     * 是否通过visible来控制popover状态
     */
    controlled: boolean;
    /**
     * popover显示位置
     */
    position: PositionType | PositionType[];
    /**
     * 是否显示动画
     */
    showAnimation: boolean;
    /**
     * @deprecated Use showAnimation to replace.
     */
    set showAnimate(isShowAnimate: any);
    /**
     * `scrollElement` 默认值是 `window `, 可以不传，只有当页面的滚动不在 window 且`appendToBody`属性为`true`上的时候才需要传递
     */
    scrollElement: Element;
    /**
     * `appendToBody`默认可以不传，仅当popover绑定元素外层宽高不够时，overflow为hidden，不想popover的弹出框被一并隐藏掉。
     */
    appendToBody: boolean;
    zIndex: number;
    popType: PopoverType;
    popMaxWidth: number;
    trigger: TriggerType;
    /**
     * @deprecated
     * 是否可以移入popover内部
     */
    hoverToContent: boolean;
    /**
     * @deprecated Use mouseLeaveDelay to replace.
     * 曾经是触发移入popover内部的延迟时间
     * 废弃,现在使用参数mouseLeaveDelay代替
     */
    set hoverDelayTime(delayTime: any);
    popoverStyle: object;
    mouseEnterDelay: number;
    mouseLeaveDelay: number;
    isEnter: boolean;
    unsubscribe$: Subject<void>;
    unsubscribeP$: Subject<void>;
    document: Document;
    set visible(_isShow: boolean);
    private get eleAppendToBody();
    constructor(triggerElementRef: ElementRef, overlayContainerRef: OverlayContainerRef, viewContainerRef: ViewContainerRef, injector: Injector, componentFactoryResolver: ComponentFactoryResolver, devConfigService: DevConfigService, doc: any);
    onDocumentClick: (event: any) => void;
    createPopover(): void;
    addMouseEvent(): void;
    show(): void;
    destroy(): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    hide(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PopoverDirective, "[dPopover]", ["dPopover"], { "content": "content"; "controlled": "controlled"; "position": "position"; "showAnimation": "showAnimation"; "showAnimate": "showAnimate"; "scrollElement": "scrollElement"; "appendToBody": "appendToBody"; "zIndex": "zIndex"; "popType": "popType"; "popMaxWidth": "popMaxWidth"; "trigger": "trigger"; "hoverToContent": "hoverToContent"; "hoverDelayTime": "hoverDelayTime"; "popoverStyle": "popoverStyle"; "mouseEnterDelay": "mouseEnterDelay"; "mouseLeaveDelay": "mouseLeaveDelay"; "visible": "visible"; }, {}, never, never, false>;
}
