import { OnDestroy, OnInit } from '@angular/core';
import { MobileBehavior } from './models/mobile-behavior';
import { TooltipEvent } from './models/tooltip-event';
import { TooltipPositions } from './models/tooltip-position';
import * as i0 from "@angular/core";
/**
 * @description Diretiva que exibe um tooltip (dica de ferramenta) flutuante ao interagir com o elemento hospedeiro.
 * Posiciona-se automaticamente considerando o espaço disponível na tela, utilizando o CDK Overlay.
 * Suporta eventos de hover, click e focus, além de comportamentos customizados para mobile.
 *
 * @example
 * ```html
 * <button sTooltip="Clique aqui" tooltipPosition="top">Ação</button>
 * ```
 *
 * @category Overlay
 */
export declare class TooltipDirective implements OnInit, OnDestroy {
    /**
     * @description Texto exibido no tooltip. Quando vazio ou `undefined`, o tooltip não é renderizado.
     */
    readonly tooltip: import("@angular/core").InputSignal<string | undefined>;
    /**
     * @description Posição preferencial do tooltip em relação ao elemento hospedeiro.
     * O tooltip se reposiciona automaticamente se não houver espaço suficiente.
     *
     * @default 'top'
     */
    readonly tooltipPosition: import("@angular/core").InputSignal<TooltipPositions>;
    /**
     * @description Tempo em milissegundos antes do tooltip aparecer após o evento de ativação.
     *
     * @default 500
     */
    readonly showDelay: import("@angular/core").InputSignal<number>;
    /**
     * @description Tempo em milissegundos que o tooltip permanece visível após aparecer.
     * Quando não informado, o tooltip permanece até o usuário sair do elemento.
     */
    readonly displayTime: import("@angular/core").InputSignal<number | undefined>;
    /**
     * @description Evento do elemento hospedeiro que dispara a exibição do tooltip.
     * - `'hover'`: exibe ao passar o mouse (padrão).
     * - `'click'`: exibe ao clicar.
     * - `'focus'`: exibe ao focar no elemento.
     *
     * @default 'hover'
     */
    readonly tooltipEvent: import("@angular/core").InputSignal<TooltipEvent>;
    /**
     * @description Quando `true`, o conteúdo HTML do tooltip é escapado antes de ser renderizado.
     *
     * @default false
     */
    readonly escape: import("@angular/core").InputSignal<boolean>;
    /**
     * @description Quando `false`, o tooltip nunca é exibido, mesmo que haja interação do usuário.
     * Útil para desabilitar tooltips dinamicamente.
     *
     * @default true
     */
    readonly visible: import("@angular/core").InputSignal<boolean>;
    /**
     * @description Comportamento do tooltip em dispositivos móveis (touch).
     * - `'pressing'`: exibe ao pressionar e manter o toque (padrão).
     * - `'none'`: desabilita o tooltip em dispositivos táteis.
     *
     * @default 'pressing'
     */
    readonly mobileBehavior: import("@angular/core").InputSignal<MobileBehavior>;
    /**
     * @description Referência a um input HTML para sincronizar a exibição do tooltip com o foco no campo.
     */
    readonly focusedInputRef: import("@angular/core").InputSignal<HTMLInputElement | null>;
    /**
     * @description Quando `true`, o tooltip só é exibido se o texto do elemento estiver truncado (overflow).
     * Útil para cells de tabela ou elementos com `text-overflow: ellipsis`.
     *
     * @default false
     */
    readonly checkTruncatedText: import("@angular/core").InputSignal<boolean>;
    private readonly elementRef;
    private readonly overlay;
    private readonly debounceUtils;
    private readonly renderer;
    private overlayRef;
    private componentRef;
    private positionChangeSubscription;
    private showTimeout?;
    private touchTimeout?;
    private tooltipCreatedByFocus;
    private readonly debounceCreateTooltipFunction;
    ngOnInit(): void;
    ngOnDestroy(): void;
    onClick(): void;
    onFocus(): void;
    onBlur(): void;
    onMouseEnter(): void;
    onMouseLeave(): void;
    onTouchStart(): void;
    onTouchEnd(): void;
    private validatePosition;
    /**
     * Manipula a visibilidade do tooltip quando houver uma referência de input.
     */
    private updateTooltipVisibilityWhenFocusOnInput;
    private _createTooltip;
    private buildPositionStrategy;
    private getConnectedPosition;
    private mapCdkPositionToTooltipPosition;
    private destroy;
    private get contentIsTruncated();
    static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDirective, "[sTooltip]", never, { "tooltip": { "alias": "sTooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "showDelay": { "alias": "showDelay"; "required": false; "isSignal": true; }; "displayTime": { "alias": "displayTime"; "required": false; "isSignal": true; }; "tooltipEvent": { "alias": "tooltipEvent"; "required": false; "isSignal": true; }; "escape": { "alias": "escape"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "mobileBehavior": { "alias": "mobileBehavior"; "required": false; "isSignal": true; }; "focusedInputRef": { "alias": "focusedInputRef"; "required": false; "isSignal": true; }; "checkTruncatedText": { "alias": "checkTruncatedText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
