/** Angular2 */
import * as ng from "@angular/core";
/** Core */
import { CoreComponent } from "cmf.core/src/core";
/** Utils */
import { EnumControlsUtils, EnumControlElement } from "../enumComboBox/enumControlsUtils";
/**
* @whatItDoes
*
* This component is used to select an an enum value with radio button controls
*
* @howToUse
*
* This component is used with the inputs and outputs mentioned below.
*
* ### Inputs
* * `boolean` : **disabled** - If is disabled
* * `boolean` : **required** - If is required
* * `Enum` : **enum** - The enum to use
* * `string[]` : **itemsToIgnore** - List of enum items to ignore
* * `string | number` : **value** - Enum selected value (Accepts both the enum integer value or the string name of the enum)
*
* ### Outputs
* `number` : **valueChanged** - Selected enum value
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
*
* ```
*
* @description
*
* ## EnumRadio Component
*
* ### Dependencies
*
* #### Components
* * Radio : `cmf.core.controls`
*
*/
export declare class EnumRadio extends CoreComponent implements ng.OnChanges {
/**
* Enum obj
*/
private _enum;
/**
* Enum reference name. Default is "".
*/
private _enumReferenceName;
/**
* The data collection, used to populate the nested comboBox component.
*/
_componentData: Array;
/**
* Component current value - Currently selected enum value
*/
_value: EnumControlElement;
/**
* Utils
*/
_utils: EnumControlsUtils;
/**
* Defines if the element is disabled to be filed
*/
disabled: boolean;
/**
* Defines if the component requires a value. Default is false.
*/
required: boolean;
/**
* Property _enumObj getter
*
* @return {any} current enum object
*/
/**
* Property enum setter. Will set both _enumReferenceName and _enumObj
*/
enum: any;
/**
* Property _value getter/setter
*
* Accepts both the enum or the string name of the enum.
*/
value: any;
/**
* An array of items to ignore. The items of the array will be compared with both keys and values of the enum
*/
itemsToIgnore: string[];
/**
* The value change event, so the component can inform the upper components that the value has changed
*/
valueChanged: ng.EventEmitter;
/**
* Constructor
*/
constructor();
/**
* If component value is of type string, try to find the corresponding object in the componentData array
*/
private updateValue;
/**
* Based on the currently enum object, updates the items (array of objects) that populate the nested combo box
*/
private setComponentData;
/**
* On changes method - update property viewer value field
*/
ngOnChanges(changes: any): void;
/**
* When selected value changes - notify parent component
*
* @method onInit
*/
onSelectedChange(value: EnumControlElement): void;
}
export declare class EnumRadioModule {
}