import PageRecord from '../../structures/PageRecord'; import HostRecord from '../../structures/HostRecord'; export abstract class EditorNodeContract { protected pageRec!: PageRecord; protected nodeRec!: HostRecord; protected initialValue: any; get page() { return this.pageRec; } set page(page: PageRecord) { this.pageRec = page; } get node() { return this.nodeRec; } set node(node: HostRecord) { this.nodeRec = node; } get identifier() { return this.nodeRec.UUID; } public abstract isDirty(): boolean | Promise; public abstract writeChangesToNode(): void | Promise; public needsSave(): boolean | Promise { return false; } public needsLoad(): boolean | Promise { return false; } public performSave(): void | Promise {} public performLoad(): void | Promise {} public performDelete(): void | Promise {} }