json-joy
Version:
Collection of libraries for building collaborative editing apps.
21 lines (20 loc) • 835 B
TypeScript
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;
}