import type { AvatarDensity, AvatarStatusPosition } from './avatar.types';
/**
* O `br-avatar` representa uma pessoa ou entidade de forma compacta: mostra uma foto, a primeira letra de um nome ou um ícone de usuário.
*
* ### Como o conteúdo é escolhido
*
* 1. Com `iconic`, mostra sempre o ícone de usuário.
* 2. Com `text`, mostra a primeira letra do texto em maiúscula.
* 3. Com `src`, mostra a imagem. Se ela não carregar, mostra o ícone.
* 4. Sem nenhum deles, mostra o ícone.
*
* ```html
*
*
*
* ```
*
* Para indicar disponibilidade, ative `status`. A cor fica em `status-bg-color` e o texto lido pelo leitor de tela, em `status-label`. Para outro indicador, use o slot `status`.
*
* ### Quando usar
*
* - Identificar a pessoa autenticada no cabeçalho ou no menu.
* - Mostrar autores, contatos ou participantes em listas.
*
* ### Quando evitar
*
* - Imagens grandes ou ilustrativas: use `
`.
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/avatar?tab=designer).
*
* @category Identidade, Conteúdo
* @status stable
* @part container - Elemento externo do avatar.
* @part content - Conteúdo interno do avatar (imagem, ícone ou texto).
* @part status - Indicador de status posicionado sobre o avatar.
*
* @slot status - Conteúdo customizado para o indicador de status. Quando usado, substitui a tag padrão.
*/
export declare class Avatar {
/**
* Referência ao elemento host do componente.
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
*/
el: HTMLBrAvatarElement;
/**
* Indica falha no carregamento da imagem para acionar fallback visual.
*/
private hasError;
/**
* Define a densidade visual do componente.
*
* - `small`: Alta densidade (componente menor, mais compacto e com menos espaçamento).
* - `medium`: Densidade intermediária, padrão recomendado para a maioria dos casos.
* - `large`: Baixa densidade (componente maior, mais espaçamento e altura).
*
* Valores inválidos usam `medium`.
*/
density: AvatarDensity;
/**
* Identificador único do componente.
* Quando omitido, um valor é gerado automaticamente.
*
* > **Padrão:** valor único gerado por generateUniqueId().
*
*/
customId: string;
/**
* URL da imagem a ser exibida no avatar do tipo 'fotográfico'.
* Deve ser uma URL válida que aponta para a imagem desejada.
*/
src: string;
/**
* Texto alternativo (alt) associado à imagem do avatar. Essencial para acessibilidade.
* Deve descrever de forma clara e concisa o conteúdo da imagem, por exemplo: "Foto de perfil de João Silva".
*/
alt: string;
/**
* Força a exibição do ícone padrão, sobrescreve outras opções (texto ou imagem).
* Útil para manter consistência visual ou quando se deseja um avatar neutro independente do conteúdo disponível.
*
* @deprecated Use `iconic`.
*/
isIconic: boolean;
/** Exibe a variação icônica. Quando informada, tem precedência sobre `isIconic`. */
iconic?: boolean;
/**
* Conteúdo textual do avatar.
* Apenas o primeiro caractere será exibido em maiúscula.
*/
text: string;
/**
* Desabilita a interação com o componente.
*
*/
disabled: boolean;
/**
* Permite definir a cor de fundo do componente.
* 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;
/**
* Exibe um indicador de status no avatar.
*/
status: boolean;
/**
* Cor de fundo do indicador de status padrão.
*/
statusBgColor: string;
/**
* Rótulo acessível do indicador de status padrão.
*/
statusLabel: string;
/**
* Tamanho do indicador de status padrão.
*/
statusSize: string;
/**
* Posição do indicador de status sobre o avatar. Aceita `top-right`, `bottom-right`, `top-left` ou `bottom-left`.
* Valores inválidos usam `top-right`.
*/
statusPosition: AvatarStatusPosition;
private get effectiveStatusPosition();
/**
* Observa mudanças na propriedade density para validação e sincronização com atributo DOM.
* Garante que apenas valores válidos sejam aceitos e atualiza o atributo no elemento host.
*/
handleDensityChange(newValue: AvatarDensity): void;
handleBackgroundColorChange(): void;
componentWillLoad(): void;
/**
* Move o foco programaticamente para o avatar.
*/
setFocus(): Promise;
/**
* Gera um mapa de classes CSS com base nas propriedades do componente.
* @returns {CssClassMap} Objeto contendo as classes CSS aplicadas.
*/
private getCssClassMap;
/**
* Verifica se uma string possui conteúdo válido (não vazia após remover espaços em branco).
* @param value - String a ser verificada
* @returns {boolean} true se a string possui conteúdo
*/
private hasContent;
private hasStatusSlot;
private handleImageError;
/**
* Obtém as classes CSS para o elemento content.
* @returns {string} Classes CSS do content
*/
private getContentClasses;
/**
* Define a variável CSS para cor de fundo personalizada para o avatar texto.
*/
private setCustomBackgroundColor;
/**
* Gera aria-label apropriado baseado no tipo de avatar
* Prioriza aria-label do host, senão gera automaticamente
*/
private getAriaLabel;
/**
* Renderiza o avatar do tipo 'letra/texto'.
* Exibe a primeira letra do texto em maiúscula.
*/
private renderTextAvatar;
/**
* Renderiza o avatar do tipo 'fotográfico/imagem'.
* Exibe uma imagem carregada via URL.
*/
private renderImageAvatar;
/**
* Renderiza o avatar do tipo 'icônico'.
* Exibe um ícone padrão (fa-solid:user) posicionado na base do avatar.
*/
private renderIconAvatar;
/**
* Método principal de renderização do avatar.
* Prioridade: isIconic > texto > imagem > ícone (padrão)
*/
private renderAvatar;
private renderStatus;
render(): any;
}