import type { AriaHasPopup, ButtonColorMode, ButtonDensity, ButtonEmphasis, ButtonShape, ButtonType } from './button.types';
/**
* O `br-button` executa uma ação: salvar, enviar um formulário, abrir um modal, aplicar um filtro.
*
* O texto e o ícone vão dentro do botão. A aparência é definida por `emphasis` (`primary`, `secondary` ou `tertiary`) e `shape` (`circle`, `block` ou `pill`).
*
* ```html
* Enviar
*
*
*
*
* ```
*
* O tipo padrão é `button`. Use `type="submit"` ou `type="reset"` para agir sobre o formulário em que o botão está. Durante uma operação demorada, ative `loading`.
*
* ### Quando usar
*
* - Executar uma ação na página atual.
* - Abrir modal, menu ou painel.
*
* ### Quando evitar
*
* - Para ir a outra página: use `br-link` ou ``.
* - Para escolher entre opções: use `br-radio` ou `br-checkbox`.
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/button?tab=designer).
*
* @category Ações, Formulários
* @status stable
* @slot default - Slot para o rótulo ou conteúdo do botão.
* @part button - Parte para o elemento button interno, usada para estilos customizados via ::part(button).
*/
export declare class Button {
elementInternals: ElementInternals;
/**
* Referência ao elemento host do componente.
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
*/
el: HTMLBrButtonElement;
private formDisabled;
private nativeButton?;
formDisabledCallback(disabled: boolean): void;
/**
* Define se o botão usará um esquema de cores escuro. Valores inválidos são ignorados.
*/
colorMode?: ButtonColorMode;
/**
* Identificador único do componente.
* Quando omitido, um valor é gerado automaticamente.
*
* > **Padrão:** valor único gerado por generateUniqueId().
*
*/
customId: string;
/**
* 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: ButtonDensity;
/**
* Desabilita a interação com o componente.
*
*/
disabled: boolean;
/**
* Define a ênfase do botão, alterando sua aparência para criar hierarquia visual e destacar ações importantes. Valores inválidos são ignorados.
*/
emphasis?: ButtonEmphasis;
/**
* Indica se o botão está no estado ativo.
* Se definido como verdadeiro, o botão será exibido como ativo.
*
* @deprecated Use `active`.
*/
isActive: boolean;
/** Estado ativo atual. Quando informado, tem precedência sobre `isActive`. */
active?: boolean;
/**
* Aplica o estado de "progresso" ao botão.
* O botão exibirá um indicador de carregamento ou progresso.
*
* @deprecated Use `loading`.
*/
isLoading: boolean;
/** Estado de carregamento atual. Quando informado, tem precedência sobre `isLoading`. */
loading?: boolean;
/**
* Define o formato do botão. Valores inválidos são ignorados.
*/
shape?: ButtonShape;
/**
* Define o tipo de botão, especificando seu comportamento padrão.
* Quando omitido, usa `button`; valores inválidos também usam `button` e geram aviso no console.
*/
type?: ButtonType;
/**
* Define o valor inicial do botão em um formulário.
*/
value?: string;
/**
* Define o índice de tabulação do botão.
* Útil para remover o botão da sequência de tabulação (tabindex="-1") quando ele é puramente decorativo ou o foco é gerenciado por um componente pai.
* Aceita inteiros maiores ou iguais a -1; valores inválidos são ignorados.
*
* @deprecated Use o atributo/propriedade nativo `tabIndex` do host.
*/
customTabIndex?: number;
private get effectiveCustomTabIndex();
/**
* Define o rótulo acessível usado por tecnologias assistivas.
*
*/
readonly ariaLabel: string | null;
/**
* Define o estado de pressionado do botão.
* Este atributo é usado para indicar se o botão está atualmente pressionado ou não.
* É especialmente útil para botões que podem ser alternados entre os estados pressionado e não pressionado.
* O valor deve ser 'true' ou 'false'.
*/
readonly ariaPressed: string | null;
/**
* Indica se um elemento controlado pelo botão está expandido ou recolhido.
* Use em botões que abrem menus, acordeões ou outros painéis expansíveis.
* O valor deve ser 'true' ou 'false'.
*/
readonly ariaExpanded: string | null;
/**
* Referência ao ID do elemento que o botão controla.
* Use em conjunto com `ariaExpanded` para relacionar o botão ao painel que ele expande/recolhe.
*/
readonly ariaControls: string | null;
/**
* Indica que o botão abre um menu, listbox, tree, grid ou dialog.
* Os valores permitidos são: 'true', 'menu', 'listbox', 'tree', 'grid' ou 'dialog'.
* Valores inválidos são removidos do elemento interno.
*/
readonly ariaHaspopup: AriaHasPopup | null;
componentDidLoad(): void;
private handleClick;
private getCssClassMap;
private get effectiveColorMode();
private get effectiveEmphasis();
private get effectiveShape();
private get effectiveType();
private get effectiveAriaHaspopup();
render(): any;
}