/** Core */
import { CoreComponent } from "cmf.core/src/core";
import Cmf from "cmf.lbos";
import { EntityPropertyService, EditMode } from "../entityPropertiesEditor/entityPropertyService";
import { PropertyOptions, PropertyChangeArgs } from "../entityPropertiesEditor/entityPropertiesEditor";
import { PropertiesEditorProperty } from "../propertiesEditor/propertiesEditor";
/** Angular */
import * as ng from "@angular/core";
export { PropertyChangeArgs };
export { PropertyOptions };
export { EditMode };
/**
* @whatItDoes
*
* This component displays a property of a given entity type for a specific edit mode
*
* @howToUse
*
* To use this component, supply an instance of a system object, the property (name of the property to edit), and optionally some propertyOptions.
* If you set propertyOptions as a string it will set only to the property label.
*
* ### Inputs
* , "property", "editMode"
* `Cmf.Foundation.BusinessObjects.Entity` : **instance** - The instance that is being edited
* `EditMode` : **editMode** - The edit mode (create, edit, ...)
* `string | Cmf.Foundation.BusinessObjects.EntityTypeProperty` : **property** - The property to edit
* ` PropertyOptions | string` : **propertyOptions** - Options for rendering the property. Pass a string to set only the lavel.
* `bool`: **isReadonly** - It's possible to override the readonly property only when readonly is other than false.
* handy when readonly state is dependent on other conditions
* `bool`: **checkValue** - If component should check it's own value to discovered if it needs update it's internal value.
* `bool`: **disabled** - It's possible to override the disable property of the entity
*
* ### Outputs
* `PropertyChangeArgs` : **propertyChange** - When a property changes, we will output the property that changed.
* The instance object is updated immediately with the change
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
*
* ```
*
*
* @description
*
* ## EntityPropertyEditor Component
*
* ### Dependencies
*
* #### Components
* * PropertyViewer : `cmf.core.business.controls`
* * PropertyEditor : `cmf.core.business.controls`
*
* #### Services
* * EntityPropertyService : `cmf.core.business.controls`
*
*/
export declare class EntityPropertyEditor extends CoreComponent implements ng.OnChanges, ng.DoCheck {
private _propertyService;
/**
* Labels and properties that will be passed to the nested component
*/
_property: PropertiesEditorProperty;
/**
* the EditMode for the current context
*/
private _editMode;
/**
* Value of the property
*/
_value: any;
/**
* Name of the property to render
*/
_propertyName: string;
/**
* Entity type properties
*/
propertyOptions: PropertyOptions | string;
/**
* Entity
*/
instance: Cmf.Foundation.BusinessObjects.Entity;
private _checkValue;
/**
* Property __checkValue getter
*
* @return {boolean} current value of property _checkValue
* @method checkValue
*/
/**
* Property _checkValue setter
*
* @param {boolean | string} [value] new value for property _checkValue
* @method checkValue
*/
checkValue: boolean | string;
/**
* isReadOnly only applicable when generic readonly calculate from properties is other than false
*/
isReadonly: boolean;
/**
* Set the name of the property to render
*/
/**
* Get the name of the property to render
*/
property: string | Cmf.Foundation.BusinessObjects.EntityTypeProperty;
/**
* Property Change event emitter.
*/
propertyChange: ng.EventEmitter;
/**
* Get the EditMode for the current context
*/
/**
* Set the EditMode for the current context
*/
editMode: any;
/**
* On Value Change Event Handling
*/
onValueChange(value: any, propertyName: string, propertyMeta: PropertiesEditorProperty): void;
/**
* Constructor
*
* @param viewContainerRef the reference to the component view container
*/
constructor(viewContainerRef: ng.ViewContainerRef, _propertyService: EntityPropertyService);
/**
* On changes method
*
* @param changes the changes made to the component properties
*/
ngOnChanges(changes: any): void;
/**
* Angular do check.
* Check if instance changed it's property value so that internal value is updated as well
*/
ngDoCheck(): void;
}
export declare class EntityPropertyEditorModule {
}