import { ElementRef, OnInit, Renderer2, TemplateRef } from '@angular/core';
import { TooltipOptions, TooltipPosition } from './../tooltip/tooltip.component';
import { TooltipService } from './../tooltip/tooltip.service';
import * as i0 from "@angular/core";
export declare class TooltipDirective implements OnInit {
    private tooltipService;
    private element;
    private renderer2;
    tooltipConfig?: TooltipOptions;
    tooltipText?: string;
    tooltipCustomContent?: TemplateRef<any>;
    tooltipPosition: TooltipPosition;
    private mouseOver;
    private interrupt;
    private hideCompleted;
    private contentRect;
    private tooltip?;
    private tooltipOptions?;
    /**Set when we show a tooltip, to allow us to unsubscribe to mouse move when hide fires.
     * if we never showed the tooltip this will remain null and we won't have an event to unsubscribe to
     */
    private mouseMoveUnsubscribe;
    constructor(tooltipService: TooltipService, element: ElementRef, renderer2: Renderer2);
    ngOnInit(): void;
    /**Detects where the mouse is to trigger the leave/hide process
     * This is a backstop protection against us missing the mouseleave event and leaving a hanging chad.
     * On some browsers, and on some actions (especially scroll) the mouseLeave seems to never fire */
    onMouseMove(event: MouseEvent): void;
    onMouseOver(): void;
    onLeave(): void;
    private checkInputsValue;
    /**
     * createTooltipOptions
     * will only be executed after manageError() verifies
     * if the parameters are not overlapping each other
     * and it will build the tooltipOptions object
     */
    private createTooltipOptions;
    private show;
    private hide;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[ecTooltip]", never, { "tooltipConfig": { "alias": "tooltipConfig"; "required": false; }; "tooltipText": { "alias": "tooltipText"; "required": false; }; "tooltipCustomContent": { "alias": "tooltipCustomContent"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, {}, never, never, false, never>;
}
