import { InputRelationshipOption } from './interface/relation.interface'; import { Reducer } from './reducer'; export declare abstract class Entity { abstract _name: string; id?: string; private _dataKeySet; private _relationshipKeyMap; get dataKeySet(): Set; get relationshipKeyMap(): Map; setRelationshipKeyMap(relationName: string, options: InputRelationshipOption): void; deleteRelationshipKeyMap(relationName: string): void; /** * e.g. 假設 member 與 room * member.buildRelationship( * room, * { * inputEntityOptions: { "relationName": "_room", "method": "addRelationships" }, * thisEntityOptions: { "relationName": "_memberMap", "displayField": "clientId", "method": "setRelationship" }, * // member.id -> member.clientId * } * ) * @param param * @param options */ buildRelationship(entity: Entity, options: InputRelationshipOption): void; setRelationship(entity: Entity, options: InputRelationshipOption): void; addRelationships(entity: Entity, options: InputRelationshipOption): void; breakInputEntityRelationships(entity: Entity, options: InputRelationshipOption): Entity; breakEntityRelationshipByOptions(options: InputRelationshipOption): Entity; breakAllEntityRelationships(): void; killItSelf(isTerminated?: boolean): void; constructor(property: any); private _reducer; get reducer(): Reducer; setReducer(reducer: Reducer): any; upsertData(data: {}): this; toObject(): object; }