import { Injector, OnInit } from '@angular/core';
import { ControlValueAccessor, FormBuilder } from '@angular/forms';
import { EvoBaseControl } from '../../common/evo-base-control';
import { IOptions } from './typings/options';
import * as i0 from "@angular/core";
export * from './typings/options';
export declare enum EvoRadioGroupThemes {
    light = "light",
    segment = "segment"
}
export declare enum EvoRadioGroupDirections {
    row = "row",
    column = "column"
}
export declare class EvoRadioGroupComponent extends EvoBaseControl implements ControlValueAccessor, OnInit {
    private formBuilder;
    protected injector: Injector;
    options: IOptions;
    _value?: string;
    theme: EvoRadioGroupThemes;
    direction: EvoRadioGroupDirections;
    formGroup: any;
    private disabled;
    constructor(formBuilder: FormBuilder, injector: Injector);
    onChange: (_: any) => void;
    onTouched: () => void;
    get value(): string;
    set value(value: string);
    ngOnInit(): void;
    writeValue(value: string): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(state: boolean): void;
    /**
     * Обработчик на смену значения
     * @param value значение
     */
    onChangedValue(value: string): void;
    /**
    * Геттер на возможные варианты отчета в формате массива
    * презентационного текста для радио группа
    */
    get optionArray(): IOptions[];
    get totalClasses(): string[];
    /**
    * Генерирует из опций массив
    * @param source объект с вариантами
    */
    private generateOptionArray;
    /**
    * Создание группы
    */
    private createFormGroup;
    static ɵfac: i0.ɵɵFactoryDeclaration<EvoRadioGroupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EvoRadioGroupComponent, "evo-radio-group", never, { "options": "options"; "_value": "value"; "theme": "theme"; "direction": "direction"; }, {}, never, never>;
}
