import { type EventEmitter } from '../../stencil-public-runtime';
import { type FormValidationState } from '../../shared/utils/form';
import { type FormValidationChangeDetail } from '../../shared/utils/validator';
import type { RadioValidator } from './radio.types';
/**
* O `br-radio` representa uma opção individual dentro de um conjunto de escolha única.
*
* Defina `name` para associar as opções do mesmo grupo, `value` para o valor enviado no formulário e `label` para o texto exibido.
*
* ```html
*
*
* ```
*
* Em formulários HTML, integra-se nativamente via `ElementInternals` com suporte a `required`.
*
* ### Quando usar
*
* - Opção única em grupos pequenos de 2 a 5 alternativas.
*
* ### Quando evitar
*
* - Mais de 5 opções: use `br-select`.
* - Seleção múltipla: use `br-checkbox`.
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/radio?tab=designer).
*
* @category Formulários, Seleção
* @status stable
* @see br-radio-group
* @slot default - Slot para o rótulo do rádio, como alternativa à propriedade label.
* @slot feedback - Mensagem de validação, normalmente um `br-message`.
*
* @part container - Contêiner visual do radio.
* @part radio-input - Elemento input nativo do radio.
* @part radio-label - Rótulo do radio.
* @part feedback - Contêiner da mensagem de validação.
*/
export declare class Radio {
elementInternals: ElementInternals;
formDisabledCallback(disabled: boolean): void;
formResetCallback(): void;
formStateRestoreCallback(state: string | File | FormData | null): void;
/**
* Referência ao elemento host do componente.
* Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.
*/
el: HTMLBrRadioElement;
formDisabled: boolean;
updateTrigger: number;
/** Indica se o slot de feedback possui conteúdo fornecido pelo consumidor. */
hasFeedbackSlot: boolean;
/** Mensagem definida pela Constraint Validation API. */
customValidationMessage: string;
validatorMessage: string | null;
isValidating: boolean;
groupManaged: boolean;
groupDisabled: boolean;
groupTabIndex: number;
groupNativeName: string;
/**
* Define o estado de seleção do radio.
* Se definido como verdadeiro, o radio estará marcado. Caso contrário, estará desmarcado.
*/
checked: boolean;
/**
* Permite desmarcar o radio ao clicar novamente sobre ele quando já estiver selecionado.
* Por padrão, um radio selecionado permanece marcado ao receber um novo clique.
* Quando usada junto com `uncheckOnDoubleClick`, esta opção tem precedência.
*/
readonly uncheckOnClick: boolean;
/**
* Permite desmarcar o radio ao clicar duas vezes sobre ele.
* Por padrão, um radio selecionado permanece marcado ao receber um segundo clique.
*/
readonly uncheckOnDoubleClick: boolean;
/**
* Desativa o radio, tornando-o não interativo.
*/
readonly disabled: boolean;
/**
* Se verdadeiro, o radio é obrigatório e uma opção deve ser selecionada antes que o formulário possa ser enviado.
*/
readonly required: boolean;
/**
* Regra síncrona ou assíncrona aplicada ao estado booleano do radio.
* Retorne uma mensagem para invalidar ou `null` para aceitar o valor.
*
* @example
* ```js
* const radio = document.querySelector('br-radio');
* radio.validator = (checked) => checked ? null : 'Selecione esta opção';
* ```
*/
readonly validator?: RadioValidator;
/**
* Indica a validade do radio.
* Se não for especificado, o valor padrão é `null`, indicando que a validade não foi definida.
*/
readonly state: 'valid' | 'invalid';
/** Estado de feedback. Quando informado, tem precedência sobre `state`. */
readonly feedbackState?: 'valid' | 'invalid';
/**
* Define se o label associado ao radio deve ser oculto.
* Se definido como verdadeiro, o texto do label será oculto, mas o radio ainda estará visível e funcional.
* @deprecated Use `labelHidden`.
*/
readonly hasHiddenLabel: boolean;
/** Oculta visualmente o rótulo. Quando informada, tem precedência sobre `hasHiddenLabel`. */
readonly labelHidden?: boolean;
/**
* Identificador único; gerado automaticamente quando omitido.
*/
readonly customId: string;
/**
* Define o nome do radio, que é utilizado para agrupar radios em formulários e identificar o campo.
* O valor é obrigatório e deve ser fornecido para garantir o correto funcionamento em formulários.
*/
readonly name: string;
/**
* Texto descritivo exibido à direita do radio.
* Caso um slot seja utilizado para fornecer um texto alternativo, o valor desta propriedade será ignorado.
*/
readonly label: string;
/**
* Define o valor associado ao radio quando ele faz parte de um formulário nativo (`