import { OnDestroy, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
/**
 * @description Componente de botão de opção (radio button) individual que implementa
 * {@link ControlValueAccessor} para integração com formulários Angular.
 * Pode ser usado de forma independente ou agrupado dentro de {@link RadioButtonGroupComponent}
 * para garantir a exclusividade de seleção entre os itens do grupo.
 *
 * @example
 * ```html
 * <s-radiobutton
 *   name="opcao"
 *   label="Opção A"
 *   value="A"
 *   [(ngModel)]="selecionado" />
 * ```
 *
 * @category Inputs
 */
export declare class RadioButtonComponent implements ControlValueAccessor, OnInit, OnDestroy {
    private static ID;
    private readonly radioButtonRegistry;
    private readonly injector;
    private control;
    protected readonly disabled: import("@angular/core").Signal<boolean>;
    protected onChange: (value: unknown) => void;
    protected onTouched: (value: unknown) => void;
    protected checked: boolean | null;
    protected formItemDisabled: import("@angular/core").WritableSignal<boolean>;
    /** @description Controla o estado desabilitado do botão via two-way binding. @default false */
    buttonDisabled: import("@angular/core").ModelSignal<boolean>;
    /** @description Texto do label exibido ao lado do botão de opção. Campo obrigatório. */
    label: import("@angular/core").InputSignal<string>;
    /** @description Nome do grupo de radio buttons. Deve ser igual para todos os botões do mesmo grupo. Campo obrigatório. */
    name: import("@angular/core").InputSignal<string>;
    /** @description Valor associado a este botão de opção. Emitido ao formulário quando o item é selecionado. Campo obrigatório. */
    value: import("@angular/core").ModelSignal<unknown>;
    /**
     * @description Identificador único do elemento `<input>` interno, usado para acessibilidade.
     * Gerado automaticamente se não informado.
     */
    inputId: import("@angular/core").InputSignal<string>;
    /** @description Emitido quando o campo interno recebe foco. */
    focusedInput: import("@angular/core").OutputEmitterRef<FocusEvent>;
    /** @description Emitido quando o campo interno perde o foco. */
    inputFocusLost: import("@angular/core").OutputEmitterRef<FocusEvent>;
    registerOnChange(fn: (value: unknown) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    writeValue(value: unknown): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    protected setValue(): void;
    protected activedContent(event: Event | KeyboardEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonComponent, "s-radiobutton", never, { "buttonDisabled": { "alias": "buttonDisabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, { "buttonDisabled": "buttonDisabledChange"; "value": "valueChange"; "focusedInput": "focusedInput"; "inputFocusLost": "inputFocusLost"; }, never, never, true, never>;
}
