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;
    /**
     * 自动隐藏系数，弹出框超出已设置的 scrollELment 边界时会自动隐藏，该值与弹出框的宽或高乘积控制超出边界多少后自动隐藏，为负数时不隐藏
     */
    autoHideCoefficient: number;
    /**
     * `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": { "alias": "content"; "required": false; }; "controlled": { "alias": "controlled"; "required": false; }; "position": { "alias": "position"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "showAnimate": { "alias": "showAnimate"; "required": false; }; "scrollElement": { "alias": "scrollElement"; "required": false; }; "autoHideCoefficient": { "alias": "autoHideCoefficient"; "required": false; }; "appendToBody": { "alias": "appendToBody"; "required": false; }; "zIndex": { "alias": "zIndex"; "required": false; }; "popType": { "alias": "popType"; "required": false; }; "popMaxWidth": { "alias": "popMaxWidth"; "required": false; }; "trigger": { "alias": "trigger"; "required": false; }; "hoverToContent": { "alias": "hoverToContent"; "required": false; }; "hoverDelayTime": { "alias": "hoverDelayTime"; "required": false; }; "popoverStyle": { "alias": "popoverStyle"; "required": false; }; "mouseEnterDelay": { "alias": "mouseEnterDelay"; "required": false; }; "mouseLeaveDelay": { "alias": "mouseLeaveDelay"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; }, {}, never, never, false, never>;
}
