import { ChangeDetectorRef, EventEmitter } from '@angular/core';
import { RadioComponent } from '../radio.component';
import { ControlValueAccessor } from '@angular/forms';
import { BooleanInput } from '@angular/cdk/coercion';
import { FieldControl } from '../../../field/src/field-control';
import { SapphireRadioChange } from './radio-base';
import { FieldComponent } from '../../../field/src/field.component';
import * as i0 from "@angular/core";
export declare abstract class RadioGroupBase implements ControlValueAccessor, FieldControl {
private changeDetectorRef;
_field: FieldComponent;
uniqueId: string;
orientation: 'vertical' | 'horizontal';
/** Name of the radio button group. All radio buttons inside this group will use this name. */
get name(): string;
set name(value: string);
private _name;
/**
* Event emitted when the group value changes.
* Change events are only emitted when the value changes due to user interaction with
* the radio button (the same behavior as ``).
*/
readonly change: EventEmitter;
get value(): any;
set value(newValue: any);
private _value;
/**
* The currently selected radio button. If set to a new radio button, the radio group value
* will be updated to match the new selected button. */
get selected(): RadioComponent | null;
set selected(selected: RadioComponent | null);
private _selected;
/** Whether the radio group is disabled */
get disabled(): boolean;
set disabled(value: BooleanInput);
private _disabled;
/** Whether the radio group is readonly */
get readonly(): boolean;
set readonly(value: BooleanInput);
private _readonly;
/** Whether the radio group is required */
get required(): boolean;
set required(value: BooleanInput);
private _required;
/** Child radio buttons. */
private radios;
onTouched: () => any;
_controlValueAccessorChangeFn: (value: any) => void;
constructor(changeDetectorRef: ChangeDetectorRef, _field: FieldComponent);
_checkSelectedRadioButton(): void;
/** Dispatch change event with current selection and group value. */
_emitChangeEvent(): void;
writeValue(value: any): void;
registerOnChange(fn: (value: any) => void): void;
registerOnTouched(fn: any): void;
setDisabledState(disabled: boolean): void;
isDisabled(): boolean;
/** Updates the `selected` radio button from the internal _value state. */
private updateSelectedRadioFromValue;
private updateRadioButtonNames;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}