UNPKG

mosx

Version:

Multiview observable state management engine

18 lines (17 loc) 780 B
/// <reference types="node" /> import { ITreeNode, IReversibleJsonPatch, MosxTracker, IListener, IChange } from "../internal"; export declare abstract class Serializer<T = any> { nodes: WeakMap<any, ITreeNode>; listeneres: Set<IListener<T>>; root: T; constructor(tracker: MosxTracker); onCreate(): void; beforeChange(change: IChange, parent: ITreeNode): void; afterChange(change: IChange, parent: ITreeNode): void; onCreateNode(entry: ITreeNode, target: any): void; onDeleteNode(entry: ITreeNode): void; abstract encodeSnapshot(value: any): Buffer; abstract decodeSnapshot(value: Buffer): any; abstract encodePatch(patch: IReversibleJsonPatch, target: any): Buffer; abstract decodePatch(buffer: Buffer): IReversibleJsonPatch; }