import { type EventEmitter } from '../../stencil-public-runtime';
import type { ScrimContentLayout, ScrimDisplayMode, ScrimLegibilityAnchor, ScrimPositionContent, ScrimScrollStrategy, ScrimSpotlightShape, ScrimVariant } from './scrim.types';
/**
* O `br-scrim` cria uma máscara visual escura sobre a tela ou sobre um elemento pai para focar a atenção do usuário.
*
* Use os métodos `show()`, `hide()` ou a propriedade `active` para controlar a exibição. Coloque o conteúdo em destaque no slot padrão.
*
* ```html
*
*
Conteúdo em evidência
*
* ```
*
* ### Quando usar
*
* - Destaque visual pontual de um elemento (tutoriais guiados ou máscaras personalizadas).
*
* ### Quando evitar
*
* - Caixas de diálogo modais padrão: use `br-modal` (que já gerencia seu próprio scrim internamente).
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/scrim?tab=designer).
*
* @category Feedback, Sobreposições
* @status stable
* @slot default - Slot para o conteúdo principal a ser exibido sobre o fundo escurecido do scrim.
* @slot activator - Slot para o elemento ativador do scrim, com prioridade sobre a propriedade activator.
*/
export declare class Scrim {
private readonly legibilityBatch;
/**
* Referência ao elemento host do componente.
*/
el: HTMLBrScrimElement;
hasActivatorSlot: boolean;
/** Rect do elemento alvo do scrim vazado. */
spotlightRect: DOMRect | null;
/**
* Identificador único.
* Caso não seja fornecido, um ID gerado automaticamente será usado.
*/
readonly customId: string;
/**
* Ativa/desativa o scrim
*/
isOpen: boolean;
private get isActive();
private get effectiveCustomOpacity();
private get effectiveScrollThreshold();
private get effectiveSpotlightPadding();
private get effectiveZIndex();
/**
* Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim
*/
positionContent: ScrimPositionContent;
/**
* Desativa o fechamento do scrim ao ser clicado
*/
disableCloseOnClick: boolean;
/**
* Define o valor de z-index do scrim. Deve ser um inteiro entre 0 e Number.MAX_SAFE_INTEGER; valores inválidos usam 0.
*/
zIndex: number | null;
/**
* Cor de fundo personalizada para o scrim.
* Aceita os seguintes formatos de cor:
* - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.
* - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.
* - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.
* - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.
* - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.
* - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.
* Se não especificada, usa a cor padrão do tema.
*/
bgColor: string | null;
/**
* Define a opacidade personalizada do scrim. O valor é limitado ao intervalo `0`–`1`; entradas inválidas usam `0.4`.
*/
customOpacity: number | null;
/**
* Define o modo de exibição do scrim:
* - `'fullscreen'`: Ocupa toda a tela (`position: fixed`). (_padrão_)
* - `'parent'`: Ocupa apenas o elemento pai (`position: absolute`).
* O elemento pai deve ter `position: relative` ou outro valor diferente de `static`.
*
* Para a variante `'legibility'`, este atributo é ignorado: o posicionamento é sempre
* calculado automaticamente a partir das coordenadas do elemento pai.
*/
displayMode: ScrimDisplayMode;
/**
* Define a estratégia de manipulação de rolagem quando scrim está aberto
* - 'block': Impede a rolagem completamente
* - 'close': Fecha o scrim quando ocorre rolagem
*/
scrollStrategy: ScrimScrollStrategy;
/**
* Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim. Valores negativos usam `0`.
*/
scrollThreshold: number;
/**
* Define o seletor para o elemento activator.
* Nota: O slot 'activator' tem prioridade sobre esta propriedade.
*
* @example
* ```html
*
* Conteúdo
* ```
*/
activator: string | null;
/**
* Define um rótulo acessível personalizado para o diálogo.
* Se não fornecido, será usado "Conteúdo do diálogo" como padrão.
*/
ariaLabel: string | null;
/**
* Define a variante semântica do scrim
* - `'focus'`: Redireciona o foco hierárquico do usuário. Cor #000000 com opacidade 40%. (_padrão_)
* - `'spotlight'`: Scrim vazado — destaca um elemento específico criando uma fresta no overlay.
* Aplica as mesmas cores da variante `'focus'`. Use `spotlightTargetId` para indicar o elemento a ser destacado.
* - `'legibility'`: Melhora o contraste e leitura de texto sobre superfícies. Cor #000000 com opacidade 64%.
* Para cobertura parcial, use `legibilityAnchor` + `legibilitySize`.
* Para gradiente suave, use `bgColor` com um valor de gradiente CSS e `customOpacity="1"`,
* ex.: `bg-color="linear-gradient(to top, rgba(0,0,0,0.64), transparent)"`..
*
* Quando definida, aplica automaticamente as especificações de cor e opacidade do Design System.
* As propriedades `bgColor` e `customOpacity` têm prioridade e sobrepõem os valores da variante.
*/
variant: ScrimVariant;
/**
* Define a borda de ancoragem da faixa de cobertura da variante `legibility`.
*
* Controla de qual borda (ou centro) do elemento a máscara de overlay cresce,
* tendo seu tamanho determinado por `legibilitySize`.
*
* - `'top'`: faixa ancorada na borda superior, cresce para baixo.
* - `'bottom'`: faixa ancorada na borda inferior, cresce para cima.
* - `'left'`: faixa ancorada na borda esquerda, cresce para a direita.
* - `'right'`: faixa ancorada na borda direita, cresce para a esquerda.
* - `'center'`: faixa centralizada verticalmente no elemento.
*
* Quando `legibilitySize` é `null`, a máscara ocupa 100% independentemente
* da âncora definida, equivalendo a uma cobertura total.
*
* Só tem efeito quando `variant="legibility"`.
*/
legibilityAnchor: ScrimLegibilityAnchor;
/**
* Define o tamanho da faixa de cobertura da variante `legibility`, usado em
* conjunto com `legibilityAnchor`.
*
* Aceita qualquer valor CSS de comprimento válido:
* - Percentual relativo ao elemento pai: `'40%'`, `'75%'`
* - Comprimento absoluto: `'120px'`, `'8rem'`, `'6em'`
* - Função CSS: `'calc(100% - 2rem)'`
*
* Quando `null` (padrão), a máscara ocupa **100%** da dimensão relevante:
* - **altura** para âncoras `top`, `bottom` e `center`
* - **largura** para âncoras `left` e `right`
*
* Só tem efeito quando `variant="legibility"` está definido.
*
* @example
* ```html
*
* Texto sobre a imagem
*
* ```
*/
legibilitySize: string | null;
/**
* Seletor CSS do elemento que deve receber o posicionamento da variante
* `legibility`. Quando não informado (padrão), o alvo é o elemento pai
* direto do ``.
*/
legibilityTargetId: string | null;
/**
* Ativa o modo de scrim vazado (variante 'spotlight'), criando uma área de fresta no overlay
* que destaca o elemento referenciado pelo seletor CSS fornecido.
*
* @example
* ```html
*
*
* ```
*/
spotlightTargetId: string | null;
/**
* Espaçamento interno (em pixels) ao redor da área de fresta no scrim vazado. Valores negativos usam `0`.
*/
spotlightPadding: number;
/**
* Define a forma da área de fresta no scrim vazado.
* - 'rect': Retangular com bordas retas.
* - 'rounded': Retangular com bordas arredondadas (border-radius de 8px).
* - 'circle': Elipse inscrita na área do elemento alvo.
*/
spotlightShape: ScrimSpotlightShape;
/**
* Define como o scrim aplica estilos de layout ao elemento filho (slot padrão).
*
* - `'default'`: O scrim gerencia o layout do conteúdo, centralizando, animando e aplicando transformações e opacidade automaticamente.
*
* - `'none'`: o scrim age como um componente controlado pelo pai. O filho recebe apenas a máscara visual, sem interferência de posicionamento, transformação ou opacidade.
* Adequado para componentes que gerenciam seu próprio layout e estado de abertura. Além disso:
*
* - Foco e eventos globais** não são interceptados pelo scrim — o componente filho gerencia seu próprio foco, navegação por teclado e fechamento via ESC.
* - Clique no scrim emite `brScrimClose` sem fechar o scrim internamente, delegando o controle de estado ao pai (quem define `isOpen`).
* - Use `zIndex` apenas para sobrescrever a camada bloqueadora no fallback CSS. Máscara e painel devem usar subcamadas locais, sem aritmética entre camadas globais.
*
*/
contentLayout: ScrimContentLayout;
private get effectivePositionContent();
private get effectiveScrollStrategy();
private get effectiveVariant();
private get effectiveLegibilityAnchor();
private get effectiveSpotlightShape();
private get effectiveContentLayout();
handleOpenChange(newValue: boolean): void;
updateStyles(): void;
handleVariantChange(): void;
handleLayerModeChange(): void;
handleSpotlightChange(): void;
handleLegibilityTargetChange(): void;
handleActivatorChange(): void;
/** Indica que o scrim foi aberto. */
brScrimOpen: EventEmitter;
/** Indica que o scrim foi fechado */
brScrimClose: EventEmitter;
connectedCallback(): void;
disconnectedCallback(): void;
componentWillLoad(): void;
componentDidLoad(): void;
componentDidRender(): void;
/**
* Define o limite de rolagem para o fechamento automático do scrim.
*/
setScrollThreshold(threshold: number): Promise;
/**
* Método público para exibir o scrim
*/
open(): Promise;
/**
* Método público para esconder o scrim
*/
close(): Promise;
/**
* Método público para alternar o estado de exibição do scrim
*/
toggle(): Promise;
/**
* Recalcula manualmente a posição e dimensões da fresta do scrim vazado.
* Útil quando o elemento alvo muda de posição sem disparar resize ou scroll.
*/
updateSpotlight(): Promise;
/** Indica se o atributo `display-mode` foi explicitamente informado pelo usuário */
private displayModeExplicit;
private contentRef;
private activatorElement;
private lastScrollTop;
private scrollOrigin;
private previouslyFocusedElement;
private focusTimeoutId;
private restoreFocusTimeoutId;
/** ResizeObserver que monitora o elemento alvo do spotlight para recalcular a posição. */
private spotlightResizeObserver;
/** Elemento atualmente sendo destacado pelo scrim vazado. */
private spotlightTargetElement;
/** Referência ao container interno para estilos locais e fallback sem `