import { Overlay } from '@angular/cdk/overlay';
import { ElementRef, NgZone, OnDestroy, TemplateRef, Type } from '@angular/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export declare type NcTooltipPlacement = 'left' | 'right' | 'top' | 'bottom';
export declare type NcTooltipStyle = 'default' | 'error';
export declare class NcTooltipDirective implements OnDestroy {
    private elementRef;
    private overlay;
    private ngZone;
    /** @ignore */
    protected destroyed$: Subject<unknown>;
    /** @ignore */
    private _content;
    /** @ignore */
    private tooltipInstanceDestroyed$;
    /** @ignore */
    private overlayRef;
    /** @ignore */
    private tooltipPortal;
    /** @ignore */
    private tooltipInstance;
    /** @ignore */
    private currentPosition$;
    /** @ignore */
    private _placement;
    /** @ignore */
    private _style;
    /** @ignore */
    private _offset;
    /** @ignore */
    private mouseOver;
    set content(value: string | TemplateRef<any> | null);
    get content(): string | TemplateRef<any> | null;
    set style(value: NcTooltipStyle);
    get style(): NcTooltipStyle;
    disabled: boolean;
    set offset(value: number);
    get offset(): number;
    set placement(value: NcTooltipPlacement);
    get placement(): NcTooltipPlacement;
    constructor(elementRef: ElementRef, overlay: Overlay, ngZone: NgZone);
    /** @ignore */
    ngOnDestroy(): void;
    show(): void;
    hide(): void;
    toggle(): void;
    /** @ignore */
    projectComponent<T>(componentType: Type<T>): T;
    /** @ignore */
    handleMouseEnter(): void;
    /** @ignore */
    handleMouseLeave(): void;
    /**
     * closes only if mouse is not over the host element nor the tooltip itself
     * @ignore
     */
    private softHide;
    /** @ignore */
    private createOverlay;
    /** @ignore */
    private updateTooltipPlacement;
    /** @ignore */
    private updatePosition;
    /** @ignore */
    private getPositions;
    static ɵfac: i0.ɵɵFactoryDeclaration<NcTooltipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NcTooltipDirective, "[ncTooltip]", ["ncTooltip"], { "content": "ncTooltip"; "style": "ncTooltipStyle"; "disabled": "ncTooltipDisabled"; "offset": "ncTooltipOffsetSize"; "placement": "placement"; }, {}, never>;
}
