///
import { IParam, MxObject, TMapLookup } from "../interfaces";
export declare class NonPersistentEntityHandler {
protected _entity: string;
/**
* Data is Id of updated Entity
*/
private _onUpdated;
onEntityUpdated: (listener: import("../connect/typedEventEmitter").Listener) => void;
/**
* Data is Id of deleted Entity
*/
private _onDeleted;
onEntityDeleted: (listener: import("../connect/typedEventEmitter").Listener) => void;
/**
* Data is New Mendix Object
*/
private _onEntityCreated;
onEntityCreated: (listener: import("../connect/typedEventEmitter").Listener) => void;
private allEmitters;
protected _entityLookup: TMapLookup;
protected _subcribeHandlers: TMapLookup;
constructor(_entity: string);
createThenCommitEntity(paramList: IParam[]): Promise;
createByMfThenCommitEntity(contextId: string, createMf: string, paramList: IParam[]): Promise;
updateAndCommitEntity(entity: MxObject, paramList: IParam[]): Promise;
callMicroflowWithEntity(microflow: string, guid: string, showProgress?: boolean): Promise;
callNanoflowWithEntity(nanoflow: mx.Nanoflow, entityType: string, entity: MxObject, showProgress?: boolean): Promise;
/** Destroy */
destroy(): Promise;
updateEntity(guid: string): Promise;
protected updateLookupMapFromArray(entities: MxObject[]): void;
protected updateLookupMap(entity: MxObject): void;
protected addNewEntity(newEntity: MxObject): void;
protected updateExistingEntity(newEntity: MxObject, guid: string): void;
deleteAllEntites(willSubscribe?: boolean): Promise;
deleteEntity(entity: MxObject, willSubscribe?: boolean): Promise;
getEntityMap(): TMapLookup;
getEntities(): mendix.lib.MxObject[];
has(id: string): boolean;
getEntity(id: string): mendix.lib.MxObject | undefined;
getFirstEntity(): MxObject | undefined;
protected subscribeEntities(entities: MxObject[]): void;
subscribeEntity(entityId: string): void;
/**
* Implement this function in concreted class to handle entity changes
* @param guid Id of Entity just changed
*/
protected onEntityChanged(guid: string): Promise;
protected unsubscribeAll(): void;
unsubscribeEntity(guid: string): void;
}