import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnDestroy, QueryList } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { RadioGroupProperties } from '@engie-group/fluid-types';
import { RadioComponent } from '../radio/radio.component';
import { RadioGroupOrientation } from './radio-group.model';
import * as i0 from "@angular/core";
export declare class RadioGroupComponent implements ControlValueAccessor, AfterContentInit, OnDestroy {
    private cdr;
    /**
     * @ignore
     */
    private unsubscribe;
    /**
     * @ignore
     */
    private _value;
    /**
     * @ignore
     */
    private _isDisabled;
    /**
     * @ignore
     */
    private _name?;
    /**
     * @ignore
     */
    private _required;
    /**
     * @ignore
     */
    private _selected;
    /**
     * @ignore
     */
    private radioGroupClassName;
    /**
     * Radio group selected value
     */
    set value(newValue: any);
    get value(): any;
    /**
     * Radio group selected radio component
     */
    set selected(selected: RadioComponent);
    get selected(): RadioComponent | null;
    /**
     * Whether the radio group is disabled or not, this will force all the children radios be disabled or not depending on this value
     */
    set isDisabled(value: boolean);
    get isDisabled(): boolean;
    /**
     * Radio group name, this will force all the children radios to have this name
     */
    set name(value: string);
    get name(): string | undefined;
    /**
     * Whether radio is required or not
     */
    set required(value: boolean);
    get required(): boolean;
    /**
     * Whether the radio group should be displayed in column or row
     */
    orientation: RadioGroupOrientation;
    /**
     * Legend to label the radio group
     */
    legend?: string;
    /**
     * Message to provide when radio group is in error state
     */
    errorMessage?: string;
    /**
     * Whether the input group is in error state
     */
    hasError?: boolean;
    /**
     * Scale of the radio group
     */
    scale?: RadioGroupProperties['scale'];
    /**
     * Output that emits checked value on change only
     */
    readonly valueChange: EventEmitter<string>;
    /**
     * All children radio components
     */
    radios?: QueryList<RadioComponent>;
    constructor(cdr: ChangeDetectorRef);
    /**
     * @ignore
     */
    private _onChange;
    /**
     * @ignore
     */
    private _onTouched;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    /**
     * @ignore
     */
    private _listenForRadioChange;
    /**
     * @ignore
     */
    private _updateAllRadiosDisableValue;
    /**
     * @ignore
     */
    private _updateAllRadiosName;
    /**
     * @ignore
     */
    private _checkSelectedRadioButton;
    /**
     * @ignore
     */
    private _markRadiosForCheck;
    /**
     * @ignore
     */
    private _updateSelectedRadioFromValue;
    /**
     * @ignore
     */
    registerOnChange(fn: any): void;
    /**
     * @ignore
     */
    registerOnTouched(fn: any): void;
    /**
     * @ignore
     */
    setDisabledState(isDisabled: boolean): void;
    /**
     * @ignore
     */
    writeValue(value: any): void;
    /**
     * @ignore
     */
    getOrientationClass(): string;
    getScaleClass(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RadioGroupComponent, "nj-radio-group", never, { "value": { "alias": "value"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "legend": { "alias": "legend"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "hasError": { "alias": "hasError"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; }, { "valueChange": "valueChange"; }, ["radios"], ["*"], true, never>;
}
