import { AfterViewInit, OnDestroy, TemplateRef } from '@angular/core';
import { ActiveDialog } from './models/active-dialog';
import { DialogSize } from './models/dialog-models';
import * as i0 from "@angular/core";
/**
 * @description Componente de diálogo modal que exibe conteúdo em uma janela sobreposta.
 * Suporta templates customizados para cabeçalho, corpo e rodapé via `sTemplate`.
 * Pode ser utilizado de forma declarativa (via `visible`) ou programática (via `DialogService`).
 *
 * @example
 * ```html
 * <!-- Modo declarativo -->
 * <s-dialog header="Título" [(visible)]="showDialog">
 *   <ng-template sTemplate="body">Conteúdo</ng-template>
 *   <ng-template sTemplate="footer"><button (click)="showDialog = false">Fechar</button></ng-template>
 * </s-dialog>
 * ```
 *
 * @category Overlay
 */
export declare class DialogComponent implements AfterViewInit, OnDestroy {
    /** @description Texto exibido no cabeçalho do diálogo. Pode ser substituído por um template com `sTemplate="header"`. */
    header: import("@angular/core").InputSignal<unknown>;
    /**
     * @description Controla a visibilidade do diálogo. Suporta two-way binding via `[(visible)]`.
     * Ao definir `true`, o diálogo é aberto; ao definir `false`, é fechado.
     * Não deve ser usado em conjunto com `DialogService` (modo programático).
     */
    visible: import("@angular/core").ModelSignal<boolean | undefined>;
    /**
     * @description Instância do diálogo ativo.
     * Em modo programático (aberto via `DialogService`): injetado do pai via `skipSelf`.
     * Em modo declarativo (via `visible`): atribuído internamente ao abrir.
     *
     * O `providers` do componente sobrescreve o token com `null` para que descendentes
     * (ex: `s-dialog` dentro de um lookup dentro deste diálogo) não herdem esta instância.
     */
    activeDialog: ActiveDialog | null;
    /**
     * @description Tamanho do diálogo.
     * Valores aceitos: `'sm'`, `'md'` (padrão), `'lg'`, `'xl'`, `'fullscreen'`.
     *
     * @default 'md'
     */
    size: import("@angular/core").InputSignal<DialogSize>;
    /**
     * @description Classes CSS adicionais aplicadas ao container de conteúdo do diálogo.
     *
     * @default ''
     */
    contentClassName: import("@angular/core").InputSignal<string>;
    /**
     * @description Quando `true`, pressionar a tecla Escape fecha o diálogo.
     *
     * @default true
     */
    escapeOnEsc: import("@angular/core").InputSignal<boolean>;
    /**
     * @description Quando `true`, clicar fora do diálogo (no backdrop) fecha o diálogo.
     *
     * @default true
     */
    destroyClickOutside: import("@angular/core").InputSignal<boolean>;
    /**
     * @description Valor do aria-label do botão de fechar a dialog.
     *
     * @default 'Fechar'
     */
    closeAriaLabel: import("@angular/core").InputSignal<string>;
    private readonly viewContainerRef;
    private readonly dialogService;
    private readonly template;
    private readonly templateDiretives;
    private readonly onDestroy$;
    protected headerTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    protected bodyTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    protected footerTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    constructor();
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    protected onDismiss(): void;
    private getTemplate;
    private openDialog;
    static ɵfac: i0.ɵɵFactoryDeclaration<DialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DialogComponent, "s-dialog", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "contentClassName": { "alias": "contentClassName"; "required": false; "isSignal": true; }; "escapeOnEsc": { "alias": "escapeOnEsc"; "required": false; "isSignal": true; }; "destroyClickOutside": { "alias": "destroyClickOutside"; "required": false; "isSignal": true; }; "closeAriaLabel": { "alias": "closeAriaLabel"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; }, ["templateDiretives"], ["*"], true, never>;
}
