/** Core */
import { CoreComponent } from "cmf.core/src/core";
import Cmf from "cmf.lbos";
/** Services */
import { ComboBoxService } from "./comboBoxService";
/** Angular */
import * as ng from "@angular/core";
/**
* @whatItDoes
*
* ComboBox business component is based on combobox component, and it is used to filter and select an item in the provided collection.
* It increases combobox functionality by adding a navigation icon that allows the navigation to a specific entity and by adding a progress indicator.
*
* @howToUse
*
* This component is used with the inputs and outputs mentioned below.
*
* ### Inputs
* `string` : **orderField** - The entity type field that will be used to sort the data.
* `string[]` : **itemsToIgnore** - An array of items to ignore. The items of the array will be compared with the field Value of the lookUpTableValue.
* `string` : **dataNameField** - The object field that should be accessed to get the text to display on the list item.
* `string` : **dataComparisonField** - The comparison Field. By default is not defined.
* `string` : **dataEnabledField** - Gets or sets the enable Field. By default is not defined.
* `Object` : **value** - The currently selected value of the comboBox component.
* `string` : **placeholder** - Defines the component placeholder - overriding the default component placeholder (lookupTableName).
* `boolean` : **required** - Defines if the component requires a value. Default is false.
* `boolean` : **disabled** - Defines if the element is disabled to be filed.
* `string` : **rowTemplate** - Row template to be used in the comboBox. String with HTML. Ex: #: data.text #
* `boolean` : **singleElementPreSelect** - Defines if the component should pre-select when there's only one element available. Default is 'true'.
* `Cmf.Foundation.Common.ReferenceType | string` : **navigationReferenceType** - Navigation business control reference type - used to pick the icon.
* `string` : **navigationReferenceTypeName** - Navigation business control reference type name - used to pick the icon.
* `boolean` : **hasNavigation** - If combo box has should have navigation. Default value is true.
* `string` : **enabled-field** - The object field that should be accessed to determine if the element will appear enabled or not.
*
* ### Outputs
* `Object` : **valueChanged** - The selected value change event, so the component can inform the upper components that the selected value has changed.
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
*
* ```
*
* @description
*
* ## Business ComboBox Component
*
* ### Dependencies
*
* #### Components
* * ComboBox : `cmf.core.controls`
* * Navigation : `cmf.core.business.controls`
*
* #### Services
* * ComboBoxService : `cmf.core.business.controls`
*
* #### Directives
* _This component does not depend on any directive_
*
*/
export declare class BusinessComboBox extends CoreComponent {
private _elementRef;
private _comboBoxService;
/**
* Defines if the component is currently "busy" - used to display a progress indicator
*/
_busy: boolean;
/**
* The data collection, indirectly, used to populate the comboBox component. Must have at least one textual field.
*/
_data: any[];
/**
* Navigation business control instance - used to define link
*/
private _navigationInstance;
/**
* Defines if the element is disabled to be filed
*/
disabled: boolean;
/**
* Defines if the component requires a value. Default is false.
*/
required: boolean;
/**
* Defines the component placeholder - overriding the default component placeholder (lookupTableName)
*/
placeholder: string;
/**
* Defines if the component should pre-select when there's only one element available. Default is 'true'.
*/
singleElementPreSelect: boolean;
/**
* An array of items to ignore. The items of the array will be compared with the field Value of the lookUpTableValue
*
* @property {string[]} array of Values to Ignore
*/
itemsToIgnore: string[];
/**
* The entity type field that will be used to sort the data
*
* @property {string} The object field designation
*/
orderField: string;
/**
* The currently selected value of the comboBox component
*
* @property {any} selected value of the select component
*/
value: any;
/**
* The object field that should be accessed to get the text to display on the list item
*
* @property {string} the field designation
*/
dataNameField: string;
/**
* Gets or sets the comparison Field. By default is not defined.
*/
dataComparisonField: string;
/**
* Gets or sets the enable Field. By default is not defined.
*/
dataEnabledField: string;
/**
* Row template to be used in the comboBox
*/
rowTemplate: string;
/**
* Navigation business control reference type - used to pick the icon
*/
navigationReferenceType: Cmf.Foundation.Common.ReferenceType | string;
/**
* Navigation business control reference type name - used to pick the icon
*/
navigationReferenceTypeName: string;
/**
* If combo box has should have navigation. Default value is true.
*/
hasNavigation: 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(_elementRef: ng.ElementRef, _comboBoxService: ComboBoxService);
/**
* Explicitly gets new data from combo box service
* Will return an empty promise when data is loaded
*/
refreshData(): Promise;
/**
* When selected value changes - notify parent component
*/
onValueChange(value: any): void;
}
export declare class BusinessComboBoxModule {
}