import { AnimationEvent } from "@angular/animations";
import { AfterViewInit, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit, TemplateRef } from "@angular/core";
import { Subject } from "rxjs";
import { IPopoverModalContext } from "./popover-modal.service";
import { PopoverPlacement } from "./public-api";
import * as i0 from "@angular/core";
/**
 * @ignore
 */
export type PopoverModalEvents = "mouse-enter" | "mouse-leave" | "backdrop-click" | "outside-click";
/**
 * @ignore
 */
export declare class PopoverModalComponent implements AfterViewInit, OnInit, OnDestroy {
    elRef: ElementRef;
    private zone;
    private cdRef;
    /**
     * Is backdrop used
     */
    backdrop: boolean;
    /**
     * Defines settings for popover
     */
    context: IPopoverModalContext;
    /**
     * Defines popover content
     */
    template: TemplateRef<string>;
    /**
     * Updates fadeIn property
     */
    displayChange: Subject<boolean>;
    /**
     * Popover hostElement
     */
    hostElement: any;
    /**
     * Defines if container has padding.
     */
    hasPadding: boolean;
    /**
     * Specifies whether the default width and height constraints are in effect for the popover
     */
    unlimited: boolean;
    placement: PopoverPlacement;
    fadeIn: boolean;
    popoverBeforeHiddenSubject: Subject<void>;
    popoverAfterHiddenSubject: Subject<void>;
    popoverModalEventSubject: Subject<PopoverModalEvents>;
    private popoverModalSubscriptions;
    onClick(event: MouseEvent): void;
    onMouseEnter(): void;
    onMouseLeave(): void;
    constructor(elRef: ElementRef, zone: NgZone, cdRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    onAnimationEnd(event: AnimationEvent): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PopoverModalComponent, "nui-popover-modal", never, { "backdrop": "backdrop"; "context": "context"; "template": "template"; "displayChange": "displayChange"; "hostElement": "hostElement"; "hasPadding": "hasPadding"; "unlimited": "unlimited"; }, {}, never, never, false, never>;
}
