UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

35 lines (34 loc) 1.69 kB
import * as nodes from '../../../nodes'; import { ClockEncoder } from '../../../../json-crdt-patch/codec/clock/ClockEncoder'; import { CrdtWriter } from '../../../../json-crdt-patch/util/binary/CrdtWriter'; import { type ITimestampStruct } from '../../../../json-crdt-patch/clock'; import { CborEncoder } from '@jsonjoy.com/json-pack/lib/cbor/CborEncoder'; import { CRDT_MAJOR_OVERLAY } from './constants'; import type { Model } from '../../../model'; export declare class Encoder extends CborEncoder<CrdtWriter> { protected clockEncoder: ClockEncoder; protected time: number; protected doc: Model; constructor(writer?: CrdtWriter); encode(doc: Model<any>): Uint8Array; encodeLogical(model: Model): void; encodeServer(model: Model): void; protected encodeClockTable(x0: number, x: number): void; protected readonly cTableEntry: (entry: { clock: ITimestampStruct; }) => void; protected readonly tsLogical: (ts: ITimestampStruct) => void; protected readonly tsServer: (ts: ITimestampStruct) => void; protected ts: (ts: ITimestampStruct) => void; protected cRoot(root: nodes.RootNode): void; protected writeTL(majorOverlay: CRDT_MAJOR_OVERLAY, length: number): void; protected cNode(node: nodes.JsonNode): void; protected cCon(node: nodes.ConNode): void; protected cVal(node: nodes.ValNode): void; protected cObj(node: nodes.ObjNode): void; protected readonly cKey: (val: ITimestampStruct, key: string) => void; protected cVec(node: nodes.VecNode): void; protected cStr(node: nodes.StrNode): void; protected cBin(node: nodes.BinNode): void; protected cArr(node: nodes.ArrNode): void; }