UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

28 lines (27 loc) 1.6 kB
import * as nodes from '../../../nodes'; import { ClockTable } from '../../../../json-crdt-patch/codec/clock/ClockTable'; import { CrdtReader } from '../../../../json-crdt-patch/util/binary/CrdtReader'; import type { IndexedFields, IndexedNodeFields } from './types'; import { type ITimestampStruct, type IClockVector } from '../../../../json-crdt-patch/clock'; import { Model } from '../../../model/Model'; import { CborDecoderBase } from '@jsonjoy.com/json-pack/lib/cbor/CborDecoderBase'; export declare class Decoder { readonly dec: CborDecoderBase<CrdtReader>; protected doc: Model; protected clockTable?: ClockTable; constructor(reader?: CrdtReader); decode<M extends Model>(fields: IndexedFields, ModelConstructor?: new (clock: IClockVector) => M): M; decodeFields<M extends Model>(clockTable: ClockTable, fields: IndexedNodeFields, ModelConstructor?: new (clock: IClockVector) => M): M; protected ts(): ITimestampStruct; protected decodeNode(id: ITimestampStruct): nodes.JsonNode; decodeCon(id: ITimestampStruct, length: number): nodes.ConNode; decodeVal(id: ITimestampStruct): nodes.ValNode; decodeObj(id: ITimestampStruct, length: number): nodes.ObjNode; decodeVec(id: ITimestampStruct, length: number): nodes.VecNode; protected decodeStr(id: ITimestampStruct, length: number): nodes.StrNode; private decodeStrChunk; protected decodeBin(id: ITimestampStruct, length: number): nodes.BinNode; private decodeBinChunk; protected decodeArr(id: ITimestampStruct, length: number): nodes.ArrNode; private decodeArrChunk; }