/** Core */
import { CoreComponent } from "cmf.core/src/core";
/** Angular2 */
import * as ng from "@angular/core";
import { OnValidate, OnValidateArgs } from "../../directives/validator/validator";
export declare class ComponentData {
index: string;
name: string;
obj: any;
constructor(index: string, name: string, obj: any);
}
/**
* @whatItDoes
* Select basic component. Used to select an item in the provided collection.
*
* @howToUse
* This component is used with the inputs and outputs mentioned below.
*
* ### Inputs
* `boolean` : **disabled** - The disabled flag of this component ;
* `boolean` : **required** - Defines if the control is mandatory or not ;
* `any[]` : **data** - The data collection used to populate the select component. Must have at least two fields: 'value' field and a 'text' field ;
* `string` : **name-field** - The object field that should be accessed to get the text to display in the component items ;
* `any` : **value** - The currently selected value of the Select component .
*
* ### Outputs
* `any` : **valueChange** - Triggered when the value change .
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
*
* ```
*
*/
export declare class Select extends CoreComponent implements ng.AfterContentInit, OnValidate {
/**
* No value text - Text that will appear in the component, when the option with no value is selected
*/
private static NO_VALUE_TEXT;
/**
* Defines if the element is disabled to be filed
*/
private _disabled;
/**
* Defines if the component is required to be filled by the user
*/
private _isRequired;
/**
* The data collection used to populate the select component. Must have at least two fields: 'value' field and a 'text' field.
*/
private _data;
/**
* The data collection, used to populate the Select component. Its a super set of the original supplied data collection.
*/
_componentData: Array;
/**
* The index of the currently selected value
*/
_selectedIndex: string;
/**
* The initially selected index
*/
_initiallySelectedIndex: string;
/**
* The currently selected value of the Select component
*/
private _value;
/**
* Classes to be applied to the select element. Only used for error handling
*/
_selectClasses: any;
/**
* The object field that should be accessed to get the text to display in the component items
*/
dataNameField: string;
/**
* Property _isRequired getter
*
* @return {boolean} current value of property _isRequired
*/
/**
* Property _isRequired setter
*
* @param {boolean} [value] new value for property _isRequired
*/
isRequired: boolean;
/**
* Property selected value getter
*
* @return {any} current value for property selected value
*/
/**
* Property selected value setter
*
* @param {any} [value] new value for property selected value
*/
value: any;
/**
* Property data getter
*
* @return {any[]} current value for property data
*/
/**
* Property data setter
*
* @param {any[]} [value] new value for property data
* @method data
*/
data: any[];
/**
* Gets the disabled Property.
*/
/**
* Sets the disabled Property
*/
disabled: boolean;
/**
* The selected value change event, so the component can inform the upper components that the selected value has changed
*
* @property {ng.EventEmitter} init event
*/
valueChanged: ng.EventEmitter;
constructor();
/**
* Set selected value by index. This method sets the value of properties _value
*
* @param {any} [value] new value for property transitions selected value index
*/
private setValueByIndex;
/**
* Set initially selected value by index. This method sets the value of property _value
* Note that this method is used due to a bug in the initial setting of the "value" property in the select
*/
private setInitiallySelectedIndexByValue;
/**
* Set selected value by index. This method sets the value of property _value
*/
private setSelectedIndexByValue;
/**
* Set internal component data.
*/
private setComponentData;
/**
* Validate component and apply error classes. Native validation was not working properly. so this was used instead.
*/
private internalValidation;
/**
* Validation function
* @param context ValidationContext
*/
onValidate(context: OnValidateArgs): Promise;
/**
* Resets the styling option of the validation process
*
* @see OnValidate interface
*/
reset(): Promise;
/**
* When selected value changes - notify parent component
*
* @param {Taura.EventArgs} [event] object containing event data
* @param {any} [value] date time picker current value
*/
onSelectedValueChanged(event: Event, selectedIndex: any): void;
/**
* When select component is initiated - if possible set component data and selected value
*/
ngAfterContentInit(): void;
}
export declare class SelectModule {
}