import { ClockDecoder } from '../../../../json-crdt-patch/codec/clock/ClockDecoder';
import { CrdtReader } from '../../../../json-crdt-patch/util/binary/CrdtReader';
import type { ITimestampStruct } from '../../../../json-crdt-patch/clock';
import { Model } from '../../../model/Model';
import { CborDecoderBase } from '@jsonjoy.com/json-pack/lib/cbor/CborDecoderBase';
import * as nodes from '../../../nodes';
export declare class Decoder {
    protected doc: Model;
    protected clockDecoder?: ClockDecoder;
    protected time: number;
    protected readonly decoder: CborDecoderBase<CrdtReader>;
    decode(view: unknown, meta: Uint8Array): Model;
    protected decodeClockTable(): void;
    protected ts(): ITimestampStruct;
    protected cRoot(view: unknown): nodes.JsonNode;
    protected cNode(view: unknown): nodes.JsonNode;
    protected cCon(view: unknown, id: ITimestampStruct, length: number): nodes.ConNode;
    protected cVal(view: unknown, id: ITimestampStruct): nodes.ValNode;
    protected cObj(view: unknown, id: ITimestampStruct, length: number): nodes.ObjNode;
    protected cVec(view: unknown, id: ITimestampStruct, length: number): nodes.VecNode;
    protected cStr(view: unknown, id: ITimestampStruct, length: number): nodes.StrNode;
    protected cBin(view: unknown, id: ITimestampStruct, length: number): nodes.BinNode;
    protected cArr(view: unknown, id: ITimestampStruct, length: number): nodes.ArrNode;
}
