/** Core */
import { CoreComponent } from "cmf.core/src/core";
/** Angular */
import * as ng from "@angular/core";
/**
* Interface for one item in the ComboBox
*/
export interface Item {
name: string;
value: number;
}
/**
* @whatItDoes
*
* The EnumComboBox displays a ComboBox for a given Enum.
*
* It will show in the ComboBox all the entries that are not numbers, as is.
*
* It should be used then we need to select a value from an Enum.
*
* This component uses the ComboBox component.
*
* @howToUse
*
* This component is used with the inputs and outputs mentioned below.
*
* ### Inputs
* `enum` : **enum** - The enum that needs to be displayed by the ComboBox
* `number` : **value** - *(from ComboBox Component)* The current value in the ComboBox
* `boolean` : **required** - *(from ComboBox Component)* Indicate if this is required
* `string` : **placeholder** - *(from ComboBox Component)* ComboBox placeholder
* `boolean` : **disabled** - *(from ComboBox Component)* Indicate if this is disabled
* `boolean` : **singleElementPreSelect** - *(from ComboBox Component)* Should select a single element
*
* ### Outputs
* `number` : **onValueChange** - When the value of the Enum changes, this output emits the new value
*
* ### Example
* To use the component, assume this Typescript and HTML Template as an example:
*
* ```Typescript
* enum MyEnum {
* Entry1 = 0,
* Entry2 = 1
* }
* ```
*
* ```HTML
*
* ```
*
* This will produce a ComboBox that will show "Entry1" and "Entry2"
*
* @description
*
* ## EnumComboBox Component
*
* ### Dependencies
*
* #### Components
* * ComboBox : `cmf.core.controls` (Ex: `cmf.core.controls`)
*
*/
export declare class EnumComboBox extends CoreComponent implements ng.OnChanges {
/**
* Enumeration data used to populate the base ComboBox
*/
_enumData: Item[];
/**
* Selected value in the ComboBox
*/
_enumValue: Item;
/**
* Enumeration
*/
enum: any;
/**
* Current value
*/
value: number;
/**
* Event emitter to value changes
*/
valueChange: ng.EventEmitter;
/**
* Constructor
*
* @param viewContainerRef the reference to the component view container
*/
constructor(viewContainerRef: ng.ViewContainerRef);
/**
* Handles a value change in the base ComboBox.
* Just emit this to the parent component.
* @param value Value selected
*/
onSelectedChange(item: Item): void;
/**
* On changes method
* When the enum changes, rebuild the internal model.
* When the value changes, find and select the value from the model.
*
* @param changes the changes made to the component properties
*/
ngOnChanges(changes: ng.SimpleChanges): void;
}
export declare class EnumComboBoxModule {
}