json-joy
Version:
Collection of libraries for building collaborative editing apps.
28 lines (27 loc) • 1.6 kB
TypeScript
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;
}