json-joy
Version:
Collection of libraries for building collaborative editing apps.
19 lines (18 loc) • 678 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';
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;
}