import { OnInit, ElementRef, Renderer2, OnChanges, SimpleChanges, InjectionToken } from '@angular/core';
import { Instance, Placement } from 'tippy.js';
import { NgxTippyProps } from '../shared/tippy/tippy.interfaces';
import { DomSanitizer } from '@angular/platform-browser';
/** Default `fdsPopover` options that can be overridden. */
export interface FdsPopoverDefaultOptions {
    closeBtnScreenReadersText: string;
    theme: 'dark' | 'light';
    placement: Placement;
    animation: string | boolean;
}
/** Injection token to be used to override the default options for `matPopover`. */
export declare const FDS_POPOVER_DEFAULT_OPTIONS: InjectionToken<FdsPopoverDefaultOptions>;
/** @docs-private */
export declare function FDS_POPOVER_DEFAULT_OPTIONS_FACTORY(): FdsPopoverDefaultOptions;
export declare class PopoverDirective implements OnInit, OnChanges {
    private elementRef;
    private renderer;
    private domSanitizer;
    private platform;
    private _defaultOptions;
    fdsPopover: NgxTippyProps;
    fdsPopoverBody?: string;
    fdsPopoverTitle?: string;
    tabindex: string;
    fdsPopoverUID: string;
    private tippyInstance;
    private defProps;
    private config;
    constructor(elementRef: ElementRef, renderer: Renderer2, domSanitizer: DomSanitizer, platform: Object, _defaultOptions: FdsPopoverDefaultOptions);
    onClick(): void;
    documentClick(e: any): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Popover initialize
     */
    initTippy(): void;
    updateTippyContent(): void;
    getConfig(): {
        animateFill?: boolean;
        appendTo?: Element | "parent" | ((ref: Element) => Element);
        aria?: {
            content?: "auto" | "describedby" | "labelledby";
            expanded?: boolean | "auto";
        };
        delay?: number | [number, number];
        duration?: number | [number, number];
        followCursor?: boolean | "horizontal" | "vertical" | "initial";
        getReferenceClientRect?: import("tippy.js").GetReferenceClientRect;
        hideOnClick?: boolean | "toggle";
        ignoreAttributes?: boolean;
        inlinePositioning?: boolean;
        interactive: boolean;
        interactiveBorder: number;
        interactiveDebounce?: number;
        moveTransition?: string;
        offset?: [number, number] | (({ placement, popper, reference, }: {
            placement: import("@popperjs/core").Placement;
            popper: import("@popperjs/core").Rect;
            reference: import("@popperjs/core").Rect;
        }) => [number, number]);
        placement: import("@popperjs/core").Placement;
        plugins?: import("tippy.js").Plugin<unknown>[];
        popperOptions?: Partial<import("@popperjs/core").Options>;
        render?: (instance: Instance<import("tippy.js").Props>) => {
            popper: import("tippy.js").PopperElement<import("tippy.js").Props>;
            onUpdate?: (prevProps: import("tippy.js").Props, nextProps: import("tippy.js").Props) => void;
        };
        showOnCreate?: boolean;
        sticky?: boolean | "reference" | "popper";
        touch?: boolean | "hold" | ["hold", number];
        trigger: string;
        triggerTarget?: Element | Element[];
        onAfterUpdate?: (instance: Instance<import("tippy.js").Props>, partialProps: Partial<import("tippy.js").Props>) => void;
        onBeforeUpdate?: (instance: Instance<import("tippy.js").Props>, partialProps: Partial<import("tippy.js").Props>) => void;
        onCreate?: (instance: Instance<import("tippy.js").Props>) => void;
        onDestroy?: (instance: Instance<import("tippy.js").Props>) => void;
        onHidden?: (instance: Instance<import("tippy.js").Props>) => void;
        onHide?: (instance: Instance<import("tippy.js").Props>) => false | void;
        onMount?: (instance: Instance<import("tippy.js").Props>) => void;
        onShow?: (instance: Instance<import("tippy.js").Props>) => false | void;
        onShown?: (instance: Instance<import("tippy.js").Props>) => void;
        onTrigger?: (instance: Instance<import("tippy.js").Props>, event: Event) => void;
        onUntrigger?: (instance: Instance<import("tippy.js").Props>, event: Event) => void;
        onClickOutside?: (instance: Instance<import("tippy.js").Props>, event: Event) => void;
        allowHTML: boolean;
        animation: string | boolean;
        arrow: string | boolean | DocumentFragment | SVGElement;
        content?: import("tippy.js").Content;
        inertia?: boolean;
        maxWidth: string | number;
        role?: string;
        theme: string;
        zIndex?: number;
        closeBtnScreenReadersText: string;
    };
    getTemplate(theme: string, closeBtnText: any): string;
    getTitle(): string;
    getBody(): string;
    setTippyInstance(): void;
}
