import { type EventEmitter } from '../../stencil-public-runtime';
import type { BrNavigateDetail, BrNavigationMode } from '../global.types';
/**
* O `br-link` conduz a pessoa usuária a outra página, arquivo para download ou seção externa.
*
* Coloque o texto ou ícone no slot padrão e aponte o destino em `href`. Para destinos externos ou abas novas, use `target="_blank"`. Para integração com roteadores de SPA, use `navigation-mode="event"` e ouça o evento `brNavigate`.
*
* ```html
* Serviços disponíveis
* Portal Gov.br
* ```
*
* ### Quando usar
*
* - Navegar para outra página, rota ou domínio.
* - Fazer download de arquivos ou saltar para âncoras na mesma página.
*
* ### Quando evitar
*
* - Executar uma ação na página atual (salvar, abrir diálogo): use `br-button`.
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/link?tab=designer).
*
* @category Navegação, Ações
* @status stable
* @slot default - Conteúdo do link (texto, ícones ou outros elementos).
* @part anchor - Parte exposta para o elemento âncora interno, usada para estilos customizados via `::part(anchor)`.
*
*/
export declare class Link {
private readonly el;
/**
* URL de destino do link.
*/
readonly href: string;
/**
* Define como o link será aberto.
* - `_self`: abre no mesmo contexto de navegação
* - `_blank`: abre em nova aba ou janela
* - `_parent`: abre no contexto pai
* - `_top`: abre no contexto de nível superior
*/
readonly target?: '_self' | '_blank' | '_parent' | '_top';
/**
* Relação entre o documento atual e o destino (`rel`).
* Quando `target="_blank"`, `noopener` e `noreferrer` são sempre incluídos
* (mesmo que `rel` seja definido) para mitigar tabnabbing e vazamento de `window.opener`.
*/
readonly rel?: string;
/** Nome sugerido para download. Uma string vazia preserva o nome definido pelo servidor. */
readonly download?: string;
/** Idioma do recurso apontado pelo link. */
readonly hreflang?: string;
/** Política de referrer usada ao buscar o destino. */
readonly referrerPolicy?: ReferrerPolicy;
/** Tipo MIME informativo do recurso apontado. */
readonly type?: string;
/**
* Controla como o componente integra a navegação mantendo `href` real no elemento navegável.
* - `native` (padrão): preserva o comportamento do navegador, conforme HTML/W3C.
* - `event`: emite `brNavigate`; se o evento for cancelado, bloqueia a navegação nativa para a SPA assumir.
* Cliques com modificadores, botão do meio ou `target` diferente de `_self` permanecem nativos.
*/
readonly navigationMode: BrNavigationMode;
/**
* Ativa o comportamento legado de navegação SPA, interceptando cliques simples
* para atualizar o histórico e emitir `brSpaNavigate`.
*
* @deprecated Use `navigationMode="event"` e o evento `brNavigate`.
*/
readonly isSpaLinkBehavior: boolean;
/**
* Desativa o link, tornando-o não interativo.
* Quando `true`: remove o `href` (um `` sem `href` sai da ordem de
* tabulação e não recebe foco, nem por clique), marca `aria-disabled="true"`
* e bloqueia o clique (sem navegação nem emissão de `brNavigate`).
* Se o link estiver focado no momento da desativação, o foco é removido.
* Útil para componentes como `br-pagination` e `br-wizard`.
*/
readonly disabled: boolean;
/**
* Exibe o link com o mesmo visual do componente `br-button`.
*/
readonly button: boolean;
/**
* Encaminhamento de `role` para o elemento âncora interno.
*/
readonly linkRole?: string;
/**
* Encaminhamento de `aria-expanded` para o elemento âncora interno.
*
* @deprecated Use `ariaExpanded`.
*/
readonly linkAriaExpanded?: string;
/** Valor de `aria-expanded`. */
readonly ariaExpanded: string | null;
/**
* Encaminhamento de `aria-selected` para o elemento âncora interno.
*
* @deprecated Use `ariaSelected`.
*/
readonly linkAriaSelected?: string;
/** Valor de `aria-selected`. */
readonly ariaSelected: string | null;
/**
* Encaminhamento de `aria-haspopup` para o elemento âncora interno.
*
* @deprecated Use `ariaHasPopup`.
*/
readonly linkAriaHaspopup?: string;
/** Valor de `aria-haspopup`. */
readonly ariaHasPopup: string | null;
/**
* Encaminhamento de `aria-current` para o elemento âncora interno.
* Indica o item ativo em um conjunto de navegação (breadcrumb, menu, paginação).
* Valores comuns: `"page"` (link da página atual), `"step"` (etapa ativa), `"true"`.
* Referência: WCAG 1.3.1 e ARIA `aria-current`.
*
* @deprecated Use `ariaCurrent`.
*/
readonly linkAriaCurrent?: string;
/** Valor de `aria-current`. */
readonly ariaCurrent: string | null;
/**
* Encaminhamento de `aria-label` para o elemento âncora interno.
* Fornece nome acessível ao link quando o conteúdo do slot não é descritivo
* por si só (ex.: link com ícone sem texto visível).
*
* @deprecated Use `ariaLabel`.
*/
readonly linkAriaLabel?: string;
/** Valor de `aria-label`. */
readonly ariaLabel: string | null;
/**
* Encaminhamento de `aria-describedby` para o elemento âncora interno.
* Referencia o `id` de um elemento externo que descreve o link.
*
* @deprecated Use `ariaDescribedBy`.
*/
readonly linkAriaDescribedby?: string;
/** Valor de `aria-describedby`. */
readonly ariaDescribedBy: string | null;
private get effectiveTarget();
private get effectiveNavigationMode();
protected handleDisabledChange(isDisabled: boolean): void;
/**
* Evento cancelável emitido em `navigation-mode="event"` para cliques primários sem modificadores em links `_self`.
* Chame `event.preventDefault()` no listener para impedir a navegação nativa e entregar `event.detail.href` ao roteador da SPA.
*/
brNavigate: EventEmitter;
/** @deprecated Use `brNavigate`. */
brSpaNavigate: EventEmitter;
private readonly handleClick;
private readonly getAnchorAttrs;
private readonly getRel;
render(): any;
}