import { AfterContentInit, OnDestroy, QueryList, TemplateRef } from '@angular/core';
import { TemplateDirective } from '@seniorsistemas/angular-components/template';
import * as i0 from "@angular/core";
/**
 * @description Componente de painel lateral deslizante (sidebar) que aparece sobre o conteúdo
 * vindo do lado direito da tela. Suporta templates customizados para cabeçalho, corpo e rodapé
 * via `sTemplate`, bloqueio de scroll automático e confirmação de fechamento.
 *
 * @example
 * ```html
 * <s-sidebar [(visible)]="sidebarOpen" header="Filtros" [closable]="true">
 *   <ng-template sTemplate="body">Conteúdo</ng-template>
 * </s-sidebar>
 * ```
 *
 * @category Overlay
 */
export declare class SidebarComponent implements AfterContentInit, OnDestroy {
    templates: QueryList<TemplateDirective> | null;
    /**
     * @description Controla a visibilidade da sidebar. Suporta two-way binding via `[(visible)]`.
     *
     * @default false
     */
    visible: import("@angular/core").ModelSignal<boolean>;
    /**
     * @description Quando `true`, exibe o botão de fechar (X) no cabeçalho da sidebar.
     *
     * @default true
     */
    closable: boolean;
    /**
     * @description Quando `true`, clicar no backdrop (área escurecida fora da sidebar) fecha o painel.
     *
     * @default true
     */
    dismissible: boolean;
    /**
     * @description Quando `true`, pressionar a tecla Escape fecha a sidebar.
     *
     * @default true
     */
    closeOnEscape: boolean;
    /**
     * @description Texto exibido no cabeçalho padrão da sidebar.
     * Pode ser substituído por um template customizado via `sTemplate="header"`.
     */
    header?: string;
    /**
     * @description Quando `true`, aumenta a largura da sidebar para acomodar mais conteúdo.
     *
     * @default false
     */
    largeSized: boolean;
    /**
     * @description Quando `true`, mantém o conteúdo da sidebar no DOM mesmo quando oculta,
     * preservando o estado interno dos componentes filhos.
     *
     * @default false
     */
    cache: boolean;
    /**
     * @description Função de confirmação chamada antes de fechar a sidebar.
     * Quando retornar `false`, o fechamento é bloqueado. Útil para validar formulários não salvos.
     */
    set registerConfirmClose(fn: () => boolean);
    headerTemplate: TemplateRef<unknown> | null;
    bodyTemplate: TemplateRef<unknown> | null;
    footerTemplate: TemplateRef<unknown> | null;
    private _confirmClose;
    private readonly visibleEffect;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    closeSidebar(): void;
    handleEscape(): void;
    private _getCustomTemplate;
    private getHeaderTemplate;
    private getBodyTemplate;
    private getFooterTemplate;
    private _getTemplates;
    static ɵfac: i0.ɵɵFactoryDeclaration<SidebarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SidebarComponent, "s-sidebar", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; }; "header": { "alias": "header"; "required": false; }; "largeSized": { "alias": "largeSized"; "required": false; }; "cache": { "alias": "cache"; "required": false; }; "registerConfirmClose": { "alias": "registerConfirmClose"; "required": false; }; }, { "visible": "visibleChange"; }, ["templates"], ["*"], false, never>;
}
