import { ApplicationRef, ElementRef, OnDestroy, OnInit, Renderer2, ViewContainerRef } from '@angular/core';
import { DebounceUtils } from '@seniorsistemas/angular-components/common';
import { MobileBehavior } from './models/mobile-behavior';
import { TooltipEvent } from './models/tooltip-event';
import { TooltipPositions } from './models/tooltip-position';
import * as i0 from "@angular/core";
export declare class TooltipDirective implements OnInit, OnDestroy {
    private readonly elementRef;
    private readonly appRef;
    private readonly debounceUtils;
    private readonly renderer;
    private readonly viewContainerRef;
    tooltip?: string;
    tooltipPosition: TooltipPositions;
    showDelay: number;
    displayTime?: number;
    tooltipEvent: TooltipEvent;
    escape: boolean;
    visible: boolean;
    mobileBehavior: MobileBehavior;
    focusedInputRef: HTMLInputElement | null;
    checkTruncatedText: import("@angular/core").InputSignal<boolean>;
    private componentRef;
    private showTimeout?;
    private touchTimeout?;
    private tooltipDivElement;
    private readonly debounceCreateTooltipFunction;
    private tooltipCreatedByFocus;
    constructor(elementRef: ElementRef, appRef: ApplicationRef, debounceUtils: DebounceUtils, renderer: Renderer2, viewContainerRef: ViewContainerRef);
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Manipula a visibilidade do tooltip quando houver uma referência de input.
     */
    private updateTooltipVisibilityWhenFocusOnInput;
    /**
     * Obtém o elemento do ícone associado ao label do input em focus.
     * @returns O ícone do input em focus.
     */
    private getIconFromFocusedInput;
    /**
     * Remove o tooltip associado ao ícone do input em focus.
     * @param icon O ícone do input em focus.
     */
    private removeTooltip;
    onClick(): void;
    onFocus(): void;
    onBlur(): void;
    onMouseEnter(): void;
    onMouseLeave(): void;
    onTouchStart(): void;
    onTouchEnd(): void;
    private validatePosition;
    private getDomElement;
    private _createTooltip;
    private showTooltip;
    private setTooltipPositionProperty;
    private setTooltipComponentProperties;
    private destroy;
    private get contentIsTruncated();
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[sTooltip]", never, { "tooltip": { "alias": "sTooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "showDelay": { "alias": "showDelay"; "required": false; }; "displayTime": { "alias": "displayTime"; "required": false; }; "tooltipEvent": { "alias": "tooltipEvent"; "required": false; }; "escape": { "alias": "escape"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "mobileBehavior": { "alias": "mobileBehavior"; "required": false; }; "focusedInputRef": { "alias": "focusedInputRef"; "required": false; }; "checkTruncatedText": { "alias": "checkTruncatedText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
