import { EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { HelpPopoverArrowPosition, HelpPopoverPosition } from './models/help-popover.models';
import * as i0 from "@angular/core";
/**
 * @description Diretiva que exibe um popover de ajuda ao clicar no elemento hospedeiro.
 * O popover suporta conteúdo como texto simples ou `TemplateRef`, além de botão de fechar,
 * ícone, cabeçalho, rodapé e posição configurável. Pode ser acionado programaticamente.
 *
 * @example
 * ```html
 * <button [sHelpPopover]="'Informe aqui o seu CPF'" popoverPosition="right">?</button>
 * ```
 *
 * @category Overlay
 */
export declare class HelpPopoverDirective implements OnDestroy, OnInit {
    private readonly MUTATION_OBSERVER_CONFIG;
    private readonly OBSERVER_CALLBACK;
    private readonly RESIZE_OBSERVER;
    /**
     * @description Conteúdo do popover. Aceita uma `string` com texto simples ou um `TemplateRef`
     * para renderizar conteúdo Angular customizado dentro do popover.
     */
    sHelpPopover: string | TemplateRef<any> | null;
    /**
     * @description Quando `true`, exibe o botão de fechar (X) no cabeçalho do popover.
     *
     * @default true
     */
    closeButton: boolean;
    /**
     * @description Classe de ícone exibida no cabeçalho do popover (ex: classe de Font Awesome).
     */
    popoverIcon: string;
    /**
     * @description Texto exibido no cabeçalho do popover.
     */
    popoverHeader: string;
    /**
     * @description Texto exibido no rodapé do popover.
     */
    popoverFooter: string;
    /**
     * @description Texto do botão de ação exibido no rodapé do popover.
     * Ao clicar, emite o evento `buttonClicked`.
     */
    popoverButtonText: string;
    /**
     * @description Alinhamento da seta indicadora em relação ao lado do popover.
     * Valores aceitos: `'beginning'` (padrão), `'middle'`, `'end'`.
     *
     * @default 'beginning'
     */
    popoverArrowPosition: HelpPopoverArrowPosition;
    /**
     * @description Posição do popover em relação ao elemento hospedeiro.
     * Valores aceitos: `'top'`, `'bottom'` (padrão), `'left'`, `'right'`.
     * O componente tenta reposicionar automaticamente caso não haja espaço.
     *
     * @default 'bottom'
     */
    set popoverPosition(value: HelpPopoverPosition);
    get popoverPosition(): HelpPopoverPosition;
    /**
     * @description Emitido quando o usuário clica no botão de ação do rodapé do popover.
     */
    buttonClicked: EventEmitter<void>;
    private _popoverPosition;
    private onDestroy$;
    private componentRef;
    private mutationObserverPopoverElement;
    private mutationObserverPopoverContent;
    private internalPosition;
    private onResize$;
    private manualTrigger;
    private listener;
    private readonly viewContainerRef;
    private readonly element;
    ngOnInit(): void;
    show(): void;
    doClick(): void;
    ngOnDestroy(): void;
    private _createComponent;
    private destroy;
    private applyPositionIntoElement;
    private applyPopoverPositionBottom;
    private applyPopoverPositionTop;
    private applyPopoverPositionLeft;
    private applyPopoverPositionRight;
    private getHorizontalLeft;
    private getVerticalTop;
    private getLeftoverContentAvailableForPopover;
    private get getPopoverElement();
    private get popoverComponentInstance();
    /**
     * Given the current position of the popover and the available space around
     * the trigger element, this function will return the position that the popover
     * will be set at.
     *
     * If the popover will fit at the given position, it will return the same
     * position.
     *
     * If the popover will not fit at the given position, it will return the position
     * that has the most available space (top or bottom).
     *
     * If there is no position with available space, it will return the given
     * position.
     *
     * @returns The position that the popover will be set at.
     */
    private get validPosition();
    static ɵfac: i0.ɵɵFactoryDeclaration<HelpPopoverDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<HelpPopoverDirective, "[sHelpPopover]", ["sHelpPopover"], { "sHelpPopover": { "alias": "sHelpPopover"; "required": false; }; "closeButton": { "alias": "closeButton"; "required": false; }; "popoverIcon": { "alias": "popoverIcon"; "required": false; }; "popoverHeader": { "alias": "popoverHeader"; "required": false; }; "popoverFooter": { "alias": "popoverFooter"; "required": false; }; "popoverButtonText": { "alias": "popoverButtonText"; "required": false; }; "popoverArrowPosition": { "alias": "popoverArrowPosition"; "required": false; }; "popoverPosition": { "alias": "popoverPosition"; "required": false; }; }, { "buttonClicked": "buttonClicked"; }, never, never, true, never>;
}
