import { ControlValueAccessor } from '@angular/forms';
import { RadioButtonGroupItem } from './models/radio-button-group.models';
import * as i0 from "@angular/core";
/**
 * @description Componente de grupo de botões de opção (radio button group) que gerencia
 * a seleção exclusiva entre múltiplas opções. Implementa {@link ControlValueAccessor}
 * para uso com Reactive Forms e Template-driven Forms do Angular.
 * Renderiza internamente componentes {@link RadioButtonComponent} para cada item configurado.
 *
 * @example
 * ```html
 * <s-radiobutton-group
 *   formControlName="opcao"
 *   inputName="plano"
 *   [items]="planos"
 *   viewMode="vertical" />
 * ```
 *
 * @category Inputs
 */
export declare class RadioButtonGroupComponent implements ControlValueAccessor {
    protected onChange: (value: unknown) => void;
    protected onTouched: (value: unknown) => void;
    protected modelValue: import("@angular/core").WritableSignal<unknown>;
    /** @description Controla o estado desabilitado de todos os botões do grupo via two-way binding. @default false */
    readonly disabled: import("@angular/core").ModelSignal<boolean>;
    /** @description Lista de itens que serão renderizados como opções do grupo. Campo obrigatório. */
    readonly items: import("@angular/core").InputSignal<RadioButtonGroupItem[]>;
    /** @description Atributo `name` compartilhado entre todos os radio buttons do grupo, garantindo exclusividade. Campo obrigatório. */
    readonly inputName: import("@angular/core").InputSignal<string>;
    /**
     * @description Direção de layout dos botões de opção.
     * `'horizontal'` exibe os botões lado a lado; `'vertical'` os empilha.
     *
     * @default 'horizontal'
     */
    readonly viewMode: import("@angular/core").InputSignal<"horizontal" | "vertical">;
    registerOnChange(fn: (value: unknown) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    writeValue(value: unknown): void;
    protected radioButtonItems: import("@angular/core").Signal<{
        hash: string;
        label: string;
        value: unknown;
        disabled?: boolean;
    }[]>;
    protected setValue(value: unknown): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonGroupComponent, "s-radiobutton-group", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "inputName": { "alias": "inputName"; "required": true; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; }, never, never, true, never>;
}
