import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { UniqueIdService } from '@ironsource/fusion-ui/services/unique-id';
import { IconData } from '@ironsource/fusion-ui/components/icon/v1';
import * as i0 from "@angular/core";
export declare abstract class RadioBaseComponent implements OnInit, ControlValueAccessor {
    private uidService;
    private elRef;
    private changeDetectorRef;
    name: string;
    isDisabled: boolean;
    checked: boolean;
    value: string;
    label: string;
    icon: IconData;
    tooltip: string;
    changed: EventEmitter<any>;
    private selectedValue;
    id: string;
    constructor(uidService: UniqueIdService, elRef: ElementRef, changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    genElementId(): string;
    onChanged(): void;
    /**
     * Method to call when value has changes.
     */
    propagateChange: (_: any) => void;
    /**
     * Method to call when the component is touched (when it was is clicked).
     */
    propagateTouched: () => void;
    /**
     * update value from model to the component
     */
    writeValue(value: string): void;
    /**
     * Informs the outside world about changes.
     * see method propagateChange call - this.propagateChange(this.model);
     */
    registerOnChange(fn: any): void;
    /**
     * on click
     */
    registerOnTouched(fn: any): void;
    /**
     * on set form controll enabled / disabled
     * also do UI Component enabled / disabled
     */
    setDisabledState?(isDisabled: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RadioBaseComponent, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<RadioBaseComponent, never, never, { "name": { "alias": "name"; "required": false; }; "isDisabled": { "alias": "isDisabled"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; }, { "changed": "changed"; }, never, never, false, never>;
}
