import { type EventEmitter } from '../../stencil-public-runtime'; import { type FormValidationState } from '../../shared/utils/form'; import { type FormValidationChangeDetail } from '../../shared/utils/validator'; import type { RadioGroupOrientation, RadioGroupValidator } from './radio-group.types'; /** * ## Design System * * Grupo semântico de radios que representa um único campo de formulário. Consulte também as * [diretrizes do Radio no Design System GovBR](https://www.gov.br/ds/components/radio?tab=designer). * * @category Formulários * @status stable * @slot default - Radios pertencentes ao grupo. * @slot label - Legenda do grupo, como alternativa à propriedade `label`. * @slot description - Texto auxiliar do grupo. * @slot feedback - Mensagem de validação do grupo. * @slot validation-loading - Indicador exibido durante validação assíncrona. * @part group - Fieldset semântico do grupo. * @part legend - Legenda e nome acessível do grupo. * @part options - Contêiner das opções. * @part description - Área de texto auxiliar. * @part feedback - Área de mensagem de validação. * @part validation-loading - Área do indicador de validação assíncrona. */ export declare class RadioGroup { elementInternals: ElementInternals; el: HTMLElement; formDisabled: boolean; customValidationMessage: string; validatorMessage: string | null; isValidating: boolean; hasFeedbackSlot: boolean; hasInteracted: boolean; hasDescriptionSlot: boolean; hasLabelSlot: boolean; hasValidationLoadingSlot: boolean; /** Nome do campo enviado pelo formulário. */ readonly name: string; /** Valor atualmente selecionado; `null` representa nenhuma seleção. */ value: string | null; /** Valor restaurado por `form.reset()` e usado como seleção inicial. */ readonly defaultValue?: string; /** Exige uma opção habilitada selecionada. */ readonly required: boolean; /** Desabilita o grupo e seus radios. */ readonly disabled: boolean; /** Orientação visual das opções. */ readonly orientation: RadioGroupOrientation; /** Texto visível usado como legenda do grupo. */ readonly label?: string; /** Nome acessível usado quando não há uma legenda visível. */ readonly ariaLabel: string | null; /** Estado visual opcional do feedback. A validade real vem de ElementInternals. */ readonly feedbackState?: 'valid' | 'invalid'; /** Regra síncrona ou assíncrona aplicada ao valor do grupo. */ readonly validator?: RadioGroupValidator; /** Identificador usado nas relações acessíveis internas. */ readonly customId: string; /** Emitido ao iniciar e concluir uma validação customizada. */ brRadioGroupValidationChange: EventEmitter; private initialValue; private validationRunId; private observer?; private syncingChildren; private ready; private originalNames; formDisabledCallback(disabled: boolean): void; formResetCallback(): void; formStateRestoreCallback(state: string | File | FormData | null): void; componentWillLoad(): void; componentDidLoad(): void; connectedCallback(): void; disconnectedCallback(): void; handleValueChange(): void; handleNameChange(): void; handleDisabledChange(disabled: boolean): void; handleValidatorChange(): void; handleDefaultValueChange(value?: string): void; handleRequiredChange(): void; handleCustomValidityChange(): void; handleChildInput(event: globalThis.Event): void; handleChildChange(event: globalThis.Event): void; handleChildChecked(event: globalThis.Event): void; handleKeyDown(event: KeyboardEvent): void; /** Verifica a validade do grupo. */ checkValidity(): Promise; /** Verifica a validade e apresenta a mensagem do grupo. */ reportValidity(): Promise; /** Define a mensagem de validade customizada do grupo. */ setCustomValidity(message: string): Promise; /** Executa o validator do grupo. */ validate(): Promise; /** Retorna o snapshot de validade do grupo. */ getValidationState(): Promise; /** Move o foco para o radio marcado ou para o primeiro radio habilitado. */ setFocus(): Promise; private readonly handleSlotChange; private getChildren; private isDisabled; private handleChildFormEvent; private syncManagedState; private manageRadio; private releaseRadio; private observeChildren; private syncNamedSlots; private applyValueToChildren; private reconcileChildren; private getValidityMessage; private cancelValidation; private getCssClassMap; private syncFormState; private renderDefaultFeedback; render(): any; }