UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

21 lines (20 loc) 835 B
import type { CompactOpBase } from '../codec/compact/types'; import type { Path } from '@jsonjoy.com/json-pointer'; import type { OpType } from '../opcodes'; import type { Operation } from '../types'; import type { OPCODE } from '../constants'; import type { IMessagePackEncoder } from '@jsonjoy.com/json-pack/lib/msgpack'; export declare abstract class AbstractOp<O extends OpType = OpType> { readonly path: Path; readonly from?: Path; constructor(path: Path); abstract op(): O; abstract code(): OPCODE; abstract apply(doc: unknown): { doc: unknown; old?: unknown; }; abstract toJson(parent?: AbstractOp): Operation; abstract toCompact(parent: undefined | AbstractOp, verbose: boolean): CompactOpBase; abstract encode(encoder: IMessagePackEncoder, parent?: AbstractOp): void; }