import { Overlay } from '@angular/cdk/overlay';
import { ElementRef, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
import { Tag, TagType } from '../../display/tags/tag';
import { TooltipService } from '../../display/tooltip/tooltip.service';
import * as i0 from "@angular/core";
export type PopoverContentPosition = 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left';
export declare class PopoverComponent implements OnDestroy {
    private overlay;
    private viewContainerRef;
    private elementRef;
    private tooltipService;
    /** An optional icon that, if provided, enables the popover to use it as the anchor element */
    icon?: string;
    /** An optional tag that, if provided, enables the popover to use it as the anchor element */
    tag?: Tag;
    /** Used to denote the hover tag's type (and thus background-color) */
    tagHoverType?: TagType;
    contentPosition: PopoverContentPosition;
    iconHoverClass: string;
    content: TemplateRef<any>;
    /** In the template, we use an ec-tags element for the pre-hover state and an entirely
     *  separate ec-tags element for our hover state, resulting in two components. To achieve a change
     * in the background-color for our anchor tag, on hover, a different tag.tagType must be provided on the
     * second ec-tag element
     */
    hoverTag?: Tag;
    private overlayRef?;
    private contentViewRef?;
    private contentRect;
    private isVisible;
    private mouseOver;
    private interrupt;
    constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, elementRef: ElementRef, tooltipService: TooltipService);
    /** When the popover initializes, if a new tagType is provided for the hover state of the popover,
     *  we use it to update the type of our "hoverTag" (which controls background-color of tag)
     */
    ngOnInit(): void;
    ngOnDestroy(): void;
    private show;
    onMouseOver(): void;
    onLeave(): void;
    /**
     * Hides the popover if the mouse moves outside of the popover content
     */
    onMouseMove(event: MouseEvent): void;
    private hide;
    private getOverlayConfig;
    private getPosition;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopoverComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PopoverComponent, "ec-popover", never, { "icon": { "alias": "icon"; "required": false; }; "tag": { "alias": "tag"; "required": false; }; "tagHoverType": { "alias": "tagHoverType"; "required": false; }; "contentPosition": { "alias": "contentPosition"; "required": false; }; "iconHoverClass": { "alias": "iconHoverClass"; "required": false; }; }, {}, never, ["*"], false, never>;
}
