import { ElementRef, OnDestroy, Renderer2 } from '@angular/core';
import { ITooltipData, TooltipPosition, TooltipType } from './tooltip.entities';
import { TooltipService } from './tooltip.base.service';
import { Observable } from 'rxjs';
import { IconData } from '@ironsource/fusion-ui/components/icon/v1';
import * as i0 from "@angular/core";
export declare abstract class TooltipBaseDirective implements OnDestroy {
    private elementRef;
    private tooltipService;
    private renderer;
    private document;
    set fusionTooltip(tooltipContent: string);
    tooltipWidth: number;
    tooltipPosition: TooltipPosition;
    tooltipType: TooltipType;
    tooltipComponentData: ITooltipData;
    tooltipIcon: IconData;
    tooltipPreventToClose: boolean;
    emptyTooltip: string;
    private visible;
    private onDestroy$;
    private clearListeners$;
    private clearTooltipContentListener$;
    private clearHover$;
    private takeUntil$;
    private onMouseEnterObservable$;
    private fusionTooltipContent;
    constructor(elementRef: ElementRef, tooltipService: TooltipService, renderer: Renderer2, document: Document);
    ngOnDestroy(): void;
    initListeners(): void;
    onHover(): void;
    private closeTooltip;
    private onHoverEnds;
    private onClick;
    private buildTooltipComponent;
    private setMouseListeners;
    private calcTruncate;
    haveToBeClosed(event: MouseEvent): Observable<Event>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipBaseDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipBaseDirective, never, never, { "fusionTooltip": { "alias": "fusionTooltip"; "required": false; }; "tooltipWidth": { "alias": "tooltipWidth"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "tooltipType": { "alias": "tooltipType"; "required": false; }; "tooltipComponentData": { "alias": "tooltipComponentData"; "required": false; }; "tooltipIcon": { "alias": "tooltipIcon"; "required": false; }; "tooltipPreventToClose": { "alias": "tooltipPreventToClose"; "required": false; }; }, {}, never, never, false, never>;
}
