/** Core */
import { CoreComponent } from "cmf.core/src/core";
import Cmf from "cmf.lbos";
/** Angular2 */
import * as ng from "@angular/core";
import { WizardCloneEntityService } from "../wizardCloneEntityService";
import { ColumnViewModel, ColumnViewAddArgs, ColumnViewSelectedArgs, AutoSelectInput, ColumnView } from "cmf.core.controls/src/components/columnView/columnView";
import { OnValidateArgs, OnValidate, ValidatorModel } from "cmf.core.controls/src/directives/validator/validator";
/**
* @whatItDoes
*
* This component will allow user to modified entities before clone
*
* @howToUse
*
* This component should only be used within the Clone Wizard
*
*
* ### Inputs:
* * `Entity` : **entity** - The entity that will be cloned
* * `EntityType` : **entityType** - The entityType which entity belongs
*
* ### Outputs:
* * onClonesUpdated: Clones updated event emitter.
* ### Example
*
*
*
*
*
*/
export declare class DetailsStep extends CoreComponent implements ng.OnChanges, OnValidate {
private _elementRef;
private _services;
private _validatorModel;
/**
* Page settings ColumnView generic methods accessor
*/
private _columnViewUtil;
/**
* Current selected leaf
*/
private _selectedLeaf;
/**
* Counters that count how many rows were created. Used to generate instance name on add
*/
private _counter;
private _nameCssSelector;
/**
* Instance that will be cloned
*/
entity: Cmf.Foundation.BusinessObjects.Entity;
/**
* EntityType
*/
entityType: Cmf.Foundation.BusinessObjects.EntityType;
/**
* Mode used in ColumnView component
*/
model: ColumnViewModel.ColumnViewModel;
/**
* Clones that will be created from cloned. The key of the map is leaf.id
*/
clones: Map;
/**
* Current selected clone.
*/
selectedClone: Cmf.Foundation.BusinessObjects.Entity;
/**
* EntityType properties that are able to be modified on clone.
* This is only necessary to load once since its not excepted that entityType changes
*/
properties: Cmf.Foundation.BusinessObjects.EntityTypeProperty[];
/**
* Event emitter that triggers when clones are modified
*/
onClonesUpdated: ng.EventEmitter;
/**
* ColumnView component.
*/
columnView: ColumnView;
/**
* Title show above the columnView. Informs how many clones are created
*/
columnViewTitle: string;
autoSelectionSetup: AutoSelectInput;
/**
* Constructor
* @param viewContainerRef view reference
* @param _elementRef element reference
* @param _services service reference
* @param _validatorModel validator model
*/
constructor(viewContainerRef: ng.ViewContainerRef, _elementRef: ng.ElementRef, _services: WizardCloneEntityService, _validatorModel: ValidatorModel);
/**
* OnChanges is used here to capture the entityType since it is not available in onInit
*/
ngOnChanges(changes: ng.SimpleChanges): void;
/**
* On Remove row event
*/
onRemove(args: ColumnViewSelectedArgs): void;
/**
* On Add row event. Created a new leaf, creates a new instance and select the created row
*/
onAdd(args: ColumnViewAddArgs): void;
onAddSeveral(args: ColumnViewAddArgs): void;
/**
* On Select row event
*/
onSelect(args: ColumnViewSelectedArgs): void;
/**
* On propertyEditor value change.
*/
onClonePropertiesUpdated(event: any): void;
/**
* On Validate event method.
* Is valid when there is at least one clone created.
*/
onValidate(args: OnValidateArgs): Promise;
/**
* Method that emits an array of clones and updated the title of the columnView
*/
getClones(): void;
private buildColumnViewModel;
private generateTemporaryName;
private updateTitle;
private updateSelectedLeaf;
private removeLeafFromModel;
private createCloneInstance;
private selectNamePropertyEditor;
private addClones;
}
export declare class DetailsStepModule {
}