/** Core */
import { CoreComponent } from "cmf.core/src/core";
import Cmf from "cmf.lbos";
/** Angular */
import * as ng from "@angular/core";
/** Nested modules */
import { PropertyOptions, PropertyChangeArgs } from "../entityPropertiesEditor/entityPropertiesEditor";
/**
* @whatItDoes
* EntityAttributes component is used to edit the attributes of an entity, including Custom Properties.
* Both the Definition and Version Attributes and Custom Properties are supported.
* The Entity instance must be provided
*
* @howToUse
*
* This component is used with the inputs mentioned below.
*
* ### Inputs
* * `boolean` : **showOnlyVersionAttributes** - If is to show only version attributes otherwise shows definition attributes
* * `Cmf.Foundation.BusinessObjects.Entity | Cmf.Foundation.BusinessObjects.EntityVersion` : **instance** - The Entity instance.
*
* ### Outputs
* * `Cmf.Foundation.BusinessObjects.AttributeCollection` : **attributesToAddOrUpdateChange** - Attributes or Custom Properties to add or update
* * `string[]` : **attributesToRemoveChange** - Attributes or Custom Properties to remove
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
*
* ```
*
* @description
*
* ### Dependencies
*
* #### Components
* * EntityPropertiesEditor : `cmf.core.business.controls`
* * BaseWidget : `cmf.core.controls`
*
* #### Directives
* * ProgressIndicator : `cmf.core.controls`
*
*/
export declare class EntityAttributesEdit extends CoreComponent implements ng.OnChanges {
private _elementRef;
/**
* Title
*/
_title: string;
/**
* Entity instance's EntityType.
*/
_entityType: Cmf.Foundation.BusinessObjects.EntityType;
/**
* The Attributes collection that belong to the Entity. If the Entity is versioned, this has the Entity Version Attributes.
*/
_attributes: {
[key: string]: string | PropertyOptions;
};
/**
* Determines if there are attributes to display. If the Entity is versioned, this determines if there are Entity Version Attributes to display.
*/
_hasAttributes: boolean;
/**
* Attributes to add or update
*/
_attributesToAddOrUpdate: Cmf.Foundation.BusinessObjects.AttributeCollection;
/**
* Attributes to add or update
*/
_attributesToRemove: string[];
/**
* Initial attributes values
*/
private _initialAttributesValues;
/**
* Entity
*/
instance: Cmf.Foundation.BusinessObjects.Entity | Cmf.Foundation.BusinessObjects.EntityVersion;
/**
* Show Version attributes
*/
showOnlyVersionAttributes: boolean;
/**
* When "attributes to add or update" change
* @event addedChange
*/
attributesToAddOrUpdateChange: ng.EventEmitter;
/**
* When "attributes to add or update" change
* @event addedChange
*/
attributesToRemoveChange: ng.EventEmitter;
/**
* Constructor
*/
constructor(_elementRef: ng.ElementRef);
/**
* Fills the attributes from the provided entity instance, taking into account also the provided attributes to hide array.
* @param entity the entity instance to be used to fill the Attributes collections. Cmf.Foundation.BusinessObjects.Entity
* @param attributesToHide the attributes to be hidden. string[]
*/
private fillAttributes;
/**
* On attribute change
*/
onAttributeChange(args: PropertyChangeArgs): void;
/**
* On changes method. Angular hook.
*
* @param changes the changes made to the component properties
*/
ngOnChanges(changes: ng.SimpleChanges): void;
}
export declare class EntityAttributesEditModule {
}