import { type EventEmitter } from '../../stencil-public-runtime';
import type { SkipLinkNavigateDetail, SkipLinkPosition, SkipLinkVariant } from './skip-link.types';
/**
* O `br-skip-link` fornece atalhos acessíveis de teclado no topo da página para saltar blocos repetitivos de conteúdo.
*
* Posicione no início da página. Declare os atalhos usando elementos `br-skip-link-item` no slot padrão, apontando cada destino em `target`.
*
* ```html
*
* Ir para o conteúdo
* Ir para o menu
*
* ```
*
* O componente permanece oculto e se torna visível automaticamente assim que recebe o foco do teclado (Tab).
*
* ### Quando usar
*
* - No topo de todas as páginas para cumprir as diretrizes de acessibilidade (WCAG 2.4.1).
*
* ### Quando evitar
*
* - Links de navegação comuns no corpo do texto: use `br-link`.
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/skip-link?tab=designer).
*
* @category Navegação
* @status stable
* @slot default - Slot para inserir os itens de navegação rápida (br-skip-link-item). A tag br-skiplink-item é aceita por compatibilidade.
*
* @part container - Parte para o contêiner principal do componente skip-link, usada para estilização via ::part().
*/
export declare class SkipLink {
/**
* Referência ao elemento host do componente.
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
*/
el: HTMLBrSkipLinkElement;
/**
* Largura do container pai
*/
private containerWidth;
/**
* Define se o componente está em modo tela pequena
*/
private isSmallScreen;
/**
* Estado interno que controla a visibilidade do componente.
*/
private isVisible;
/**
* Define se o componente precisa mudar para modo simples por falta de espaço
*/
private needsSimpleMode;
/**
* Identificador único do componente.
* Quando omitido, um valor é gerado automaticamente.
*
* > **Padrão:** valor único gerado por generateUniqueId().
*
*/
customId: string;
/**
* Controla se o skip link está aberto.
*/
open: boolean;
/**
* Define se o skip link apresenta um ou múltiplos itens visíveis.
* - 'simple': Exibe apenas um item por vez.
* - 'compound': Exibe uma lista com múltiplos itens.
* Valores inválidos usam 'compound'.
*/
variant: SkipLinkVariant;
/**
* Define a posição do skip link na tela.
* - 'top-left': Posicionado no canto superior esquerdo.
* - 'top-center': Posicionado no centro superior.
* - 'top-right': Posicionado no canto superior direito.
* Valores inválidos usam 'top-left'.
*/
position: SkipLinkPosition;
/**
* Define o z-index do componente.
* Controla a ordem de empilhamento do componente na página.
* Deve ser um inteiro entre 0 e Number.MAX_SAFE_INTEGER; valores inválidos usam 0.
*/
zIndex: number | null;
/**
* Exibe a contagem de itens no formato (1/4), (2/4), etc.
* Quando `true`, cada item mostrará sua posição relativa ao total de itens.
* Por padrão, é `true` para o modo simple e `false` para o modo compound.
*/
showItemCount?: boolean;
private get effectiveVariant();
private get effectivePosition();
private get effectiveZIndex();
handleOpenChange(): void;
updateStyles(): void;
/**
* Observa mudanças nos estados que afetam o modo efetivo (simple/compound)
* e atualiza as contagens dos itens quando necessário.
*/
watchModeChanges(): void;
/**
* Evento emitido quando um item do skiplink é ativado.
* O evento contém informações sobre o item acionado e o elemento target.
*/
/** @deprecated Use `brSkipLinkNavigate`. */
brSkiplinkNavigation: EventEmitter;
/** Evento emitido quando um destino é ativado. */
brSkipLinkNavigate: EventEmitter;
/**
* Evento emitido quando o skiplink se torna visível.
*/
/** @deprecated Use `brSkipLinkShow`. */
brDidShow: EventEmitter;
/** Evento emitido ao exibir o componente. */
brSkipLinkShow: EventEmitter;
/**
* Evento emitido quando o skiplink se torna oculto.
*/
/** @deprecated Use `brSkipLinkHide`. */
brDidHide: EventEmitter;
/** Evento emitido ao ocultar o componente. */
brSkipLinkHide: EventEmitter;
connectedCallback(): void;
disconnectedCallback(): void;
componentWillLoad(): void;
componentDidLoad(): void;
/**
* Listener para eventos de navegação dos itens filhos.
*/
handleItemNavigation(event: CustomEvent<{
itemId: string;
target: string;
}>): void;
/**
* Listener para evento de foco no componente.
*/
handleFocusIn(event: FocusEvent): void;
/**
* Listener para evento de perda de foco no componente.
*/
handleFocusOut(event: FocusEvent): void;
/**
* Listener para a tecla Escape.
*/
handleKeyDown(event: KeyboardEvent): void;
/**
* Oculta o componente programaticamente.
*/
hide(): Promise;
/**
* Exibe o componente programaticamente.
*/
show(): Promise;
/**
* ResizeObserver para monitorar mudanças no tamanho do container
*/
private resizeObserver;
private isInsideComponent;
/**
* Manipulador global para atalhos de teclado Alt+[número].
*/
private getSkipLinkItems;
private globalKeyHandler;
private setFocusedItem;
/**
* Calcula a largura total dos itens e atualiza os estados do componente
*/
private updateContainerSize;
/**
* Calcula a largura total dos itens do skip-link e determina se deve usar modo simple ou compound.
*/
private calculateItemsWidth;
/**
* Soma a largura de todos os itens do skip-link
*/
private sumItemsWidth;
/**
* Calcula a largura disponível descontando margens e margem de segurança
*/
private calculateAvailableWidth;
/**
* Atualiza os atributos de contagem nos itens filhos.
* Adiciona data-item-index e data-item-total em cada br-skiplink-item.
* A contagem é exibida quando o componente está em modo simple (incluindo modo responsivo).
*/
private updateItemCounts;
private getEffectivePosition;
private getCssClassMap;
render(): any;
}