import { Entity } from './entity'; import { DisposableImpl, Emitter } from '@gedit/utils'; /** * 实体的数据块 */ export declare abstract class EntityData extends DisposableImpl { protected readonly entity: Entity; static type: string; protected onDataChangedEmitter: Emitter>; protected _data: DATA; private _pauseChanged; /** * 修改后触发 */ readonly onDataChanged: import("@gedit/utils").Event>; /** * 初始化数据 */ abstract getDefaultData(): DATA; constructor(entity: Entity); /** * data 类型 */ get type(): string; /** * 当前数据 */ get data(): DATA; /** * 更新单个数据 * @param key * @param value */ update(props: Partial | keyof DATA | DATA, value?: any): void; /** * 检测属性是否更改, 默认采用浅比较 * @param newProps */ checkChanged(newProps: Partial | DATA): boolean; /** * 存储数据, 一般在关闭浏览器后需要暂时存到localStorage */ toJSON(): object; /** * 还原数据 */ fromJSON(data: object): void; get pauseChanged(): boolean; set pauseChanged(p: boolean); fireChanged(): void; } export type EntityDataProps = E['data']; export interface EntityDataRegistry { new (...args: any[]): E; readonly type: E['type']; } //# sourceMappingURL=entity-data.d.ts.map