import { EventEmitter, OnInit, ChangeDetectorRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { LogService } from '@ironsource/fusion-ui/services/log';
import { UniqueIdService } from '@ironsource/fusion-ui/services/unique-id';
import { RadioGroupOptions } from '@ironsource/fusion-ui/components/radio-group/common/entities';
import * as i0 from "@angular/core";
export declare abstract class RadioGroupBaseComponent implements OnInit, ControlValueAccessor {
    private uniqueIdService;
    protected logService: LogService;
    private cdr;
    /**
     * radio buttons group name
     */
    name: string;
    /**
     * radiobutton inline direction
     */
    inline: boolean;
    /**
     * disabled (all group)
     */
    isDisabled: boolean;
    /**
     * radiobutton option: interface RadioGroupOptions {
     *     id: string | number;
     *     label: string;
     *     icon?: IconData;
     *     tooltip?: string;
     *     disabled?: boolean;
     * }
     */
    options: RadioGroupOptions[];
    /** @internal */
    selected: any;
    /** @internal */
    selectedChange: EventEmitter<any>;
    /** @internal */
    id: string;
    constructor(uniqueIdService: UniqueIdService, logService: LogService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    /** @internal */
    isSelected(option: any): boolean;
    /** @internal */
    setSelected(selectedValue: any): void;
    /**
     * Method to call when value has changes.
     * @internal
     */
    propagateChange: (_: any) => void;
    /**
     * Method to call when the component is touched (when it was is clicked).
     * @internal
     */
    propagateTouched: () => void;
    /**
     * update value from model to the component
     * @internal
     */
    writeValue(value: string): void;
    /**
     * Informs the outside world about changes.
     * see method propagateChange call - this.propagateChange(this.model);
     * @internal
     */
    registerOnChange(fn: any): void;
    /**
     * on click
     * @internal
     */
    registerOnTouched(fn: any): void;
    /**
     * on set form controll enabled / disabled
     * also do UI Component enabled / disabled
     * @internal
     */
    setDisabledState?(isDisabled: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RadioGroupBaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<RadioGroupBaseComponent, never, never, { "name": { "alias": "name"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "options": { "alias": "options"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, { "selectedChange": "selectedChange"; }, never, never, false, never>;
}
