import type { Manager } from '../manager'; import * as Decorators from './decorators'; import * as methods from './methods'; export declare class Entity { static Register: typeof Decorators.Register; static Field: typeof Decorators.Field; static Edge: typeof Decorators.Edge; static className: string; static fields: string[]; static fromJSON(this: TEntity, json: { [key: string]: any; }): TEntity; static isEquals(entity1: Entity, entity2: Entity): boolean; constructor(); get attributes(): methods.IAttributes; get systemAttributes(): methods.ISystemAttributes; get(key: string): any; set(key: string, value: any): void; unset(key: string): void; getSystem(key: string): any; setSystem(key: string, value: any): void; get className(): string; get id(): string; get isFetched(): boolean; get createdAt(): Date; get updatedAt(): Date; getEdge(edgeName: string, dstClassName: string | (new () => Dst)): import("..").Edge; getEdgeDst(edgeName: string, srcClassName: string | (new () => Src)): import("..").Edge; getEdgeSingle(edgeName: string, srcClassName: string | (new () => Dst)): import("..").EdgeSingle; getEdgeDstSingle(edgeName: string, srcClassName: string | (new () => Src)): import("..").EdgeSingle; getPlain(plainName: string): import("..").Plain; toJSON(): any; toQuery(): import("..").Query; fetch(manager: Manager, deep?: number): Promise; subscribe(manager: Manager, callback: (oldValue: this, newValue: this) => any, deep?: number): () => any; }