/**
 * This is a continuation of ngx-popover
 * @Reference {github} https://github.com/pleerock/ngx-popover
 */
import { ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, EventEmitter, OnChanges, SimpleChange, ViewContainerRef, ApplicationRef, Injector, Type } from '@angular/core';
import { PopoverContentComponent } from './popover-content.component';
import { PopoverPlacement } from './popover.placement';
/**
* @group Basic Toolkit
* @component Popover Directive
*/
export declare class PopoverDirective implements OnChanges {
    protected viewContainerRef: ViewContainerRef;
    protected cdr: ChangeDetectorRef;
    protected resolver: ComponentFactoryResolver;
    protected appRef: ApplicationRef;
    private injector;
    protected popoverContentComponent: typeof PopoverContentComponent;
    protected popover: ComponentRef<PopoverContentComponent>;
    protected visible: boolean;
    constructor(viewContainerRef: ViewContainerRef, cdr: ChangeDetectorRef, resolver: ComponentFactoryResolver, appRef: ApplicationRef, injector: Injector);
    content: string | PopoverContentComponent;
    popoverSize: 'small' | 'medium-small' | 'medium' | 'large' | 'auto';
    popoverDisabled: boolean;
    popoverAnimation: boolean;
    popoverPlacement: PopoverPlacement;
    popoverTitle: string;
    popoverOnHover: boolean;
    popoverCloseOnClickOutside: boolean;
    popoverCloseOnMouseOutside: boolean;
    popoverDismissTimeout: number;
    appendToBody: boolean;
    onShown: EventEmitter<PopoverDirective>;
    onHidden: EventEmitter<PopoverDirective>;
    showOrHideOnClick(evt: Event): void;
    showOrHideOnTouch(evt: Event): void;
    showOnHover(): void;
    hideOnHover(): void;
    ngOnChanges(changes: {
        [propertyName: string]: SimpleChange;
    }): void;
    protected createComponent(component: Type<any>): ComponentRef<any>;
    protected removeComponent(componentRef: ComponentRef<any>): void;
    toggle(): void;
    show(): void;
    hide(): void;
    getElement(): HTMLElement;
}
