import { AfterViewInit, ElementRef, OnChanges, OnDestroy, TemplateRef } from '@angular/core';
import { ComponentChanges } from '@bimeister/pupakit.common';
import { Nullable } from '@bimeister/utilities';
import { Observable } from 'rxjs';
import { TooltipService } from '../services/tooltip.service';
import * as i0 from "@angular/core";
export declare class PupaTooltipDirective implements OnChanges, OnDestroy, AfterViewInit {
    private readonly tooltipService;
    readonly triggerRef: ElementRef<HTMLElement>;
    tooltipHideOnHover: boolean;
    tooltipDisabled: boolean;
    tooltipDelayMs: number;
    pupaTooltip: Nullable<string>;
    tooltipContentTemplate: Nullable<TemplateRef<unknown>>;
    readonly isOpened$: Observable<boolean>;
    private readonly isDisabled$;
    private readonly triggerMouseEnter$;
    private readonly triggerMouseLeave$;
    private isMouseOverElement;
    private readonly subscription;
    constructor(tooltipService: TooltipService, triggerRef: ElementRef<HTMLElement>);
    ngAfterViewInit(): void;
    ngOnChanges(changes: ComponentChanges<this>): void;
    ngOnDestroy(): void;
    private processDisabledChanges;
    private processHideOnTooltipHoverChanges;
    private processTooltipContentChanges;
    private processTooltipContentTemplateChanges;
    private registerTooltipTriggerRef;
    private processTriggerMouseEnterEvent;
    private processTriggerMouseLeaveEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<PupaTooltipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PupaTooltipDirective, "[pupaTooltip]", ["pupaTooltip"], { "tooltipHideOnHover": "tooltipHideOnHover"; "tooltipDisabled": "tooltipDisabled"; "tooltipDelayMs": "tooltipDelayMs"; "pupaTooltip": "pupaTooltip"; "tooltipContentTemplate": "tooltipContentTemplate"; }, {}, never, never, false>;
}
