import { type EventEmitter } from '../../stencil-public-runtime';
import type { NotificationCloseDetail, NotificationCloseReason, NotificationItemClickDetail, NotificationPlacement } from './notification.types';
/**
* O `br-notification` organiza a central de mensagens, comunicados e avisos do usuário em um painel retrátil.
*
* Use os métodos `open()`, `close()` ou a propriedade `isOpen` para controlar o painel. Estruture o conteúdo com `br-notification-header`, `br-notification-body` e `br-notification-item`.
*
* ```html
*
*
*
*
*
*
*
*
* ```
*
* ### Quando usar
*
* - Central de avisos acumulados da aplicação, normalmente acionada por um botão no cabeçalho.
*
* ### Quando evitar
*
* - Mensagens em linha como resposta direta a uma ação na tela: use `br-message`.
* - Confirmação de ação crítica: use `br-modal`.
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/notification?tab=designer).
*
* @category Feedback, Sobreposições
* @status stable
* @slot trigger - Elemento acionador externo responsável por abrir e fechar o painel.
* @slot header - Região superior do componente, para uso com subcomponentes de cabeçalho ou conteúdo customizado.
* @slot tabs - Região opcional para navegação por abas.
* @slot default - Região principal da lista de notificações.
* @slot footer - Região opcional para ações complementares, como "ver todas".
*
* @part base - Superfície principal do painel.
* @part header - Região superior do componente.
* @part body - Região principal do componente.
* @part tabs - Região de abas, quando existir.
* @part list - Região com rolagem onde os itens são exibidos.
* @part close-button - Botão de fechar do painel.
* @part divider - Divisor entre itens da lista.
*/
export declare class Notification {
/**
* Referência ao elemento host do componente.
*/
el: HTMLBrNotificationElement;
hasFooter: boolean;
hasHeader: boolean;
hasTabs: boolean;
hasTrigger: boolean;
/**
* Identificador único do componente.
* Quando omitido, um valor é gerado automaticamente.
*
* > **Padrão:** valor único gerado por generateUniqueId().
*
*/
customId: string;
/**
* Nome acessível do painel de notificações. Exposto via `aria-label`.
*/
readonly label: string;
/**
* Controla se o painel de notificações está aberto.
*/
open: boolean;
/**
* Fecha o painel ao clicar fora da superfície.
*/
readonly closeOnOutsideClick: boolean;
/**
* Fecha o painel ao clicar novamente no acionador.
*/
readonly closeOnTriggerClick: boolean;
/**
* Faz o painel ocupar toda a largura disponível em viewports pequenas.
*/
readonly mobileFullscreen: boolean;
/**
* Habilita rolagem apenas na região de itens, preservando cabeçalho e abas fixos.
*/
readonly internalScroll: boolean;
/**
* Define o posicionamento do painel em relação ao acionador. Valores inválidos usam `bottom-end`.
*/
readonly placement: NotificationPlacement;
/**
* Largura explícita do painel. Quando não definida, o painel dimensiona conforme o conteúdo,
* respeitando o `max-width` definido por spec ou pelo prop `maxWidth`.
*/
readonly width: string;
/**
* Sobrescreve o `max-width` do painel. Por padrão, o CSS aplica `max-width: 50vw` em viewports ≥576px
* conforme a especificação do Design System.
*/
readonly maxWidth: string;
/**
* Sobrescreve a altura máxima do painel.
* Por padrão, o CSS aplica `calc(100vh - 86px)` via token `--notification-height`.
*/
readonly maxHeight: string;
/**
* Define se o painel de notificações deve ser renderizado de forma estática (inline).
* Quando verdadeiro, o posicionamento absoluto é desativado. Ideal para centrais de notificações fixas ou documentação.
*/
readonly isStatic: boolean;
protected handleOpenChange(newValue: boolean): void;
/**
* Informa a mudança de estado aberto/fechado do painel.
*/
brOpenChange: EventEmitter<{
open: boolean;
}>;
/**
* Informa que o painel foi aberto.
*/
brNotificationOpen: EventEmitter;
/**
* Informa que o painel foi fechado.
*/
brNotificationClose: EventEmitter;
/**
* Expõe a interação com um item da lista.
*/
brNotificationItemClick: EventEmitter;
/**
* Informa troca de aba quando o componente possuir navegação por tabs.
*/
brNotificationTabChange: EventEmitter<{
value: string;
}>;
componentDidLoad(): void;
disconnectedCallback(): void;
private attachBlockingSurfaceListener;
private detachBlockingSurfaceListener;
handleKeyDown: (event: KeyboardEvent) => void;
handleOutsideClick: (event: MouseEvent) => void;
private windowListenersAttached;
private attachWindowListeners;
private detachWindowListeners;
handleNotificationItemSelect(event: CustomEvent<{
itemId?: string;
}>): void;
handleNotificationHeaderClose(): void;
handleNotificationTabChange(event: CustomEvent<{
value: string;
}>): void;
/**
* Abre o painel de notificações.
*/
show(): Promise;
/**
* Fecha o painel de notificações.
*/
hide(reason?: NotificationCloseReason): Promise;
/**
* Alterna o estado aberto/fechado.
*/
toggle(): Promise;
/**
* Move o foco de volta para o acionador.
*/
focusTrigger(): Promise;
/**
* Move o foco para o primeiro item interativo da lista.
*/
focusFirstItem(): Promise;
private pendingCloseReason;
private cleanupBlockingSurfaceDismissal?;
private previousFocus;
private readonly getFocusableElements;
private readonly handleFocusTrap;
private readonly isPanelVisible;
private readonly getTriggerElements;
private readonly updateTriggerAria;
private readonly getCssClassMap;
private get effectivePlacement();
private readonly checkSlotVisibility;
render(): any;
}