import { ApplicationRef, ElementRef, NgZone, OnDestroy, OnInit, Renderer2, TemplateRef } from '@angular/core';
import { DokuPopoverCloseByKey, DokuPopoverPlacement } from './popover.interface';
import * as i0 from "@angular/core";
export declare class DokuPopover implements OnInit, OnDestroy {
    private document;
    private renderer;
    private ngZone;
    private elementRef;
    private appRef;
    readonly id: string;
    /**
     * Content of the popover.
     * It can be a string or a template for more customization.
     *
     * @default ''
     */
    content: string | TemplateRef<unknown>;
    /**
     * The color of the popover.
     * Either `dark` or `light`.
     * @default 'dark'
     */
    color: 'dark' | 'light';
    /**
     * The placement of the popover.
     * @default 'top'
     */
    placement: DokuPopoverPlacement;
    /**
     * Actions that will close the popover.
     *
     * - `manual`, only manual action that will close the popover like using `hide` method.
     * - `clickOutside`, close the popover when clicking outside its element.
     *
     * The top list has higher priority.
     */
    closeBy: DokuPopoverCloseByKey[];
    /**
     * Whether to disable the popover.
     * Disabled popover can't be opened.
     * @default false
     */
    disabled: boolean;
    private isShown;
    private popoverElement?;
    private popoverContentElement?;
    private popoverArrowElement?;
    private viewRef?;
    private cleanup?;
    private destroy$;
    constructor(document: Document, renderer: Renderer2, ngZone: NgZone, elementRef: ElementRef, appRef: ApplicationRef);
    protected get classes(): string[];
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Show popover programmatically.
     */
    show(): void;
    /**
     * Hide popover programmatically.
     */
    hide(): void;
    /**
     * Toggle popover programmatically.
     */
    toggle(): void;
    /**
     * Update the content of the popover with new one.
     */
    updateContent(content: string | TemplateRef<unknown>): void;
    private createPopoverElement;
    private createPopoverContentElement;
    private createArrowElement;
    private setPopoverContent;
    private updatePosition;
    private doAutoUpdatePosition;
    private handleOnClick;
    static ɵfac: i0.ɵɵFactoryDeclaration<DokuPopover, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DokuPopover, "[doku-popover]", ["dokuPopover"], { "content": "doku-popover"; "color": "popoverColor"; "placement": "popoverPlacement"; "closeBy": "popoverCloseBy"; "disabled": "popoverDisabled"; }, {}, never, never, true>;
}
