import { EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { HelpPopoverArrowPosition, HelpPopoverPosition } from './models/help-popover.models';
import * as i0 from "@angular/core";
export declare class HelpPopoverDirective implements OnDestroy, OnInit {
    private readonly MUTATION_OBSERVER_CONFIG;
    private readonly OBSERVER_CALLBACK;
    private readonly RESIZE_OBSERVER;
    sHelpPopover: string | TemplateRef<any> | null;
    closeButton: boolean;
    popoverIcon: string;
    popoverHeader: string;
    popoverFooter: string;
    popoverButtonText: string;
    popoverArrowPosition: HelpPopoverArrowPosition;
    private _popoverPosition;
    get popoverPosition(): HelpPopoverPosition;
    set popoverPosition(value: HelpPopoverPosition);
    buttonClicked: EventEmitter<void>;
    private onDestroy$;
    private componentRef;
    private mutationObserverPopoverElement;
    private mutationObserverPopoverContent;
    private internalPosition;
    private onResize$;
    private manualTrigger;
    private listener;
    private readonly viewContainerRef;
    private readonly element;
    ngOnInit(): void;
    show(): void;
    doClick(): void;
    ngOnDestroy(): void;
    private _createComponent;
    private destroy;
    private applyPositionIntoElement;
    private applyPopoverPositionBottom;
    private applyPopoverPositionTop;
    private applyPopoverPositionLeft;
    private applyPopoverPositionRight;
    private getHorizontalLeft;
    private getVerticalTop;
    private getLeftoverContentAvailableForPopover;
    private get getPopoverElement();
    private get popoverComponentInstance();
    /**
   * Given the current position of the popover and the available space around
   * the trigger element, this function will return the position that the popover
   * will be set at.
   *
   * If the popover will fit at the given position, it will return the same
   * position.
   *
   * If the popover will not fit at the given position, it will return the position
   * that has the most available space (top or bottom).
   *
   * If there is no position with available space, it will return the given
   * position.
   *
   * @returns The position that the popover will be set at.
   */
    private get validPosition();
    static ɵfac: i0.ɵɵFactoryDeclaration<HelpPopoverDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<HelpPopoverDirective, "[sHelpPopover]", ["sHelpPopover"], { "sHelpPopover": { "alias": "sHelpPopover"; "required": false; }; "closeButton": { "alias": "closeButton"; "required": false; }; "popoverIcon": { "alias": "popoverIcon"; "required": false; }; "popoverHeader": { "alias": "popoverHeader"; "required": false; }; "popoverFooter": { "alias": "popoverFooter"; "required": false; }; "popoverButtonText": { "alias": "popoverButtonText"; "required": false; }; "popoverArrowPosition": { "alias": "popoverArrowPosition"; "required": false; }; "popoverPosition": { "alias": "popoverPosition"; "required": false; }; }, { "buttonClicked": "buttonClicked"; }, never, never, false, never>;
}
