/** Core */
import { CoreComponent } from "cmf.core/src/core";
/** Nested modules */
import { ExecutionViewEventArgs } from "cmf.core.controls/src/components/executionView/executionView";
import { EntityPropertyJoin } from "../entityPropertyPicker/entityPropertyPicker";
/** Angular */
import * as ng from "@angular/core";
export { EntityPropertyJoin };
/**
* @whatItDoes
*
* This component displays a modal allowing a user to pick an end property for a given entity type.
* It will only allow confirmation when the user has picked a valid property and will emit the change event when this occurs.
*
* @howToUse
*
* This component is used with the inputs and outputs mentioned below.
*
* Give it the entity type name and handle the data change event
*
* ### Inputs
* `string` : **entityTypeName** - Name of the entity type
* `boolean` : **includeRelations** - Controls wether the underlying entity property editor will include the relations. Defaults to true.
* `string` : **mainTitle** - Title of the modal
* * `EntityPropertyJoin[]` : **value** - Displayed value of entity type property joins
* `EntityPropertyJoin[][]` : **joins** - Joins that hold the information for the properties for the entity property modal.
* Pass as false to not display the joins
* `boolean` : **showJoins** - Controls wether joins are shown in the modal
*
* ### Outputs
* (Provide a detailed list of the outputs here.
* Syntax for each output description: " * type [string, number, Object...] : name - description") Ex:
* `EntityPropertyJoin[]` : **dataChange** - Emits an array of properties and joins when the user confirms the selection
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
* ```
*
*
* @description
*
* ## EntityPropertyModal Component
*
* ### Dependencies
*
* #### Components
* * ExecutionView : `cmf.core.controls`
* * EntityPropertyPicker : `cmf.core.business.controls` (Ex: `cmf.core.controls`)
*
*
*/
export declare class EntityPropertyModal extends CoreComponent {
/**
* Execution view component reference
*/
private _executionView;
/**
* Path to the property selected
*/
_propertyPath: EntityPropertyJoin[];
/**
* Name of the entity type to get the properties from
*/
entityTypeName: string;
/**
* Currently selected join information
*/
joins: EntityPropertyJoin[][];
/**
* Boolean value that controls wether joins are shown
*/
showJoins: boolean;
/**
* Controls wether the entity property input lying underneath will include relations. Defaults to true.
*/
includeRelations: boolean;
/**
* Displayed entity Properties & joins
*/
value: EntityPropertyJoin[];
/**
* Title of the execution view modal
*/
mainTitle: string;
/**
* Data change event that is triggered when the modal successfully closes
*/
dataChange: ng.EventEmitter;
/**
* Constructor
*
* @param viewContainerRef the reference to the component view container
*/
constructor(viewContainerRef: ng.ViewContainerRef);
/**
* On execution view confirm validate chosen property
* @param args Execution view perform args
*/
onConfirm(args: ExecutionViewEventArgs): void;
/**
* Store the property path currently selected
* @param properties Array of entity property joins
*/
propertyChange(properties: EntityPropertyJoin[]): void;
}
export declare class EntityPropertyModalModule {
}