import { ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';
import { Nullable } from '@angular-ru/cdk/typings';
import { TooltipContextValue } from './interfaces/tooltip-context-value';
import { TooltipOptions } from './interfaces/tooltip-options';
import { TooltipPlacement } from './interfaces/tooltip-placement';
import { TooltipSize } from './interfaces/tooltip-size';
import { TooltipTextInterceptor } from './interfaces/tooltip-text-interceptor';
import { TooltipValue } from './interfaces/tooltip-value';
import { TooltipDomLeakService } from './services/tooltip-dom-leak.service';
import * as i0 from "@angular/core";
export declare class TooltipDirective implements OnDestroy {
    private readonly el;
    private readonly renderer;
    private readonly ngZone;
    private readonly options;
    private readonly interceptor;
    private readonly domLeak;
    tooltipDisabled: boolean;
    placement: TooltipPlacement;
    localCssStyle: Nullable<string>;
    size: TooltipSize;
    uid: string;
    private readonly delta;
    private readonly layoutMinDuration;
    private tooltipDomElement;
    private timeoutId;
    private frameId;
    private createLayoutId;
    private hideId;
    private mouseLeaveTooltipId;
    private tooltipMouseenter;
    private tooltipMouseleave;
    private handlerOptions;
    private internalTooltipValue;
    private internalContext;
    constructor(el: ElementRef, renderer: Renderer2, ngZone: NgZone, options: TooltipOptions, interceptor: TooltipTextInterceptor, domLeak: TooltipDomLeakService);
    set context(contextValue: TooltipContextValue);
    set tooltip(tooltipValue: TooltipValue);
    private get offsetElementHeight();
    private get offsetElementWidth();
    private static getScrollPos;
    onMouseenterHandler(): void;
    onMouseleaveHandler(): void;
    ngOnDestroy(): void;
    showTooltip(): void;
    hideTooltip(): void;
    addTooltipElementToBody(): void;
    setPosition(): void;
    private addTooltipToBodyWithAnimation;
    private refreshTooltipContent;
    private markElementAddInDom;
    private markElementRemoveFromDom;
    private connectMouseEvents;
    private disconnectMouseEvents;
    private addUidToElement;
    private addTooltipShowClass;
    private removeTooltipShowClass;
    private tooltipListenOnHoverEvent;
    private createTooltipContent;
    private createTooltipElement;
    private destroyAllTimeouts;
    private removeOldNodes;
    private setStyle;
    private calculateByTop;
    private calculateByBottom;
    private calculateByLeft;
    private calculateByRight;
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[tooltip]", never, { "tooltipDisabled": "tooltip-disabled"; "placement": "tooltip-placement"; "localCssStyle": "tooltip-css-style"; "size": "tooltip-size"; "context": "tooltip-context"; "tooltip": "tooltip"; }, {}, never>;
}
//# sourceMappingURL=tooltip.directive.d.ts.map