/** * JSON serialization of provable types and values. */ import { NestedProvable } from './nested.ts'; import { ProvableType } from './o1js-missing.ts'; import { Field, UInt8, UInt32, UInt64, PublicKey, Signature, VerificationKey, Int64 } from 'o1js'; import { type SerializedFactory } from './provable-factory.ts'; import type { Json } from './types.ts'; export { type SerializedType, type SerializedValue, type SerializedNestedType, serializeProvableType, serializeProvableValue, serializeProvableField, serializeProvablePublicKey, serializeNestedProvableType, serializeNestedProvableValue, serializeSimplyNestedProvableValue, deserializeProvableType, deserializeProvableValue, deserializeNestedProvable, deserializeNestedProvableValue, replaceNull, replaceUndefined, }; declare const supportedTypes: { Field: typeof import("node_modules/o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/field.js").Field) => import("node_modules/o1js/dist/node/lib/provable/field.js").Field); Bool: typeof import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool & ((x: boolean | import("node_modules/o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool) => import("node_modules/o1js/dist/node/lib/provable/bool.js").Bool); UInt8: typeof UInt8; UInt32: typeof UInt32; UInt64: typeof UInt64; Int64: typeof Int64; PublicKey: typeof PublicKey; Signature: typeof Signature; Undefined: import("o1js").ProvablePureExtended; VerificationKey: typeof VerificationKey; }; type O1jsTypeName = keyof typeof supportedTypes; type SerializedType = { _type: O1jsTypeName; } | { _type: 'Struct'; properties: SerializedNestedType; } | { _type: 'Array'; inner: SerializedType; size: number; } | { _type: 'Constant'; value: Json; } | { _type: 'Bytes'; size: number; } | { _type: 'Proof'; proof: Record; } | { _type: 'String'; } | SerializedFactory; type SerializedNestedType = SerializedType | { [key: string]: SerializedNestedType; }; declare function serializeProvableType(type: ProvableType): SerializedType; type SerializedValue = SerializedType & { value: Json; }; type SerializedValueAny = SerializedType & { value: any; }; type SerializedNestedValue = SerializedValue | string | number | boolean | { [key: string]: SerializedNestedValue; }; declare function serializeProvableValue(value: any): SerializedValue; declare function serializeProvableField(value: Field): { _type: "Field"; value: string; }; declare function serializeProvablePublicKey(value: PublicKey): { _type: "PublicKey"; value: any; }; declare function serializeNestedProvableType(type: NestedProvable): SerializedNestedType; declare function serializeNestedProvableValue(value: any): SerializedNestedValue; declare function serializeSimplyNestedProvableValue(value: Record): Record; declare function deserializeProvableType(type: SerializedType): ProvableType; declare function deserializeProvableValue(json: SerializedValueAny): any; declare function deserializeNestedProvable(type: SerializedNestedType): NestedProvable; declare function deserializeNestedProvableValue(value: SerializedNestedValue): any; declare function replaceNull>(obj: Input): { [K in keyof Input]: Input[K] extends infer T | null ? T | undefined : Input[K]; }; declare function replaceUndefined>(obj: Input): { [K in keyof Input]: Input[K] extends infer T | undefined ? T | null : Input[K]; };