/** * A dynamic record is a key-value list which can contain keys/values you are not aware of at compile time. */ import { Field, type From, type InferProvable, Option, type ProvableHashable, Unconstrained } from 'o1js'; import { type ProvableHashableType } from '../o1js-missing.ts'; export { DynamicRecord, GenericRecord, type UnknownRecord, type DynamicRecordClass, extractProperty, }; type DynamicRecord = DynamicRecordBase; type DynamicRecordClass> = ReturnType>; declare function DynamicRecord, TKnown extends { [K in keyof AKnown]: InferProvable; } = { [K in keyof AKnown]: InferProvable; }>(knownShape: AKnown, { maxEntries }: { maxEntries: number; }): { new (value: DynamicRecordRaw): { readonly maxEntries: number; readonly knownShape: { [K in keyof TKnown]: ProvableHashableType; }; get(key: K): TKnown[K]; entries: Option<{ key: Field; value: Field; }>[]; actual: Unconstrained; getAny(valueType: A, key: string): import("node_modules/o1js/dist/node/bindings/lib/provable-generic.js").InferProvable, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>; hash(): Field; }; from & UnknownRecord>(value: T): DynamicRecordBase; fromShape(type: A, value: { [K in keyof A]: From; }): DynamicRecordBase; readonly shape: { [K in keyof TKnown]: ProvableHashableType; }; provable: ProvableHashable, UnknownRecord>; }; declare namespace DynamicRecord { var Base: typeof DynamicRecordBase; } type GenericRecord = GenericRecordBase; declare function GenericRecord({ maxEntries }: { maxEntries: number; }): { new (value: DynamicRecordRaw): { readonly maxEntries: number; entries: Option<{ key: Field; value: Field; }>[]; actual: Unconstrained; readonly knownShape: {}; getAny(valueType: A, key: string): import("node_modules/o1js/dist/node/bindings/lib/provable-generic.js").InferProvable, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>; hash(): Field; }; from(actual: UnknownRecord): GenericRecordBase; }; declare namespace GenericRecord { var Base: typeof GenericRecordBase; } declare class GenericRecordBase { entries: Option<{ key: Field; value: Field; }>[]; actual: Unconstrained; constructor(value: DynamicRecordRaw); get maxEntries(): number; get knownShape(): {}; static from(actual: UnknownRecord): GenericRecordBase; getAny(valueType: A, key: string): import("node_modules/o1js/dist/node/bindings/lib/provable-generic.js").InferProvable, import("node_modules/o1js/dist/node/lib/provable/field.js").Field>; hash(): Field; } declare class DynamicRecordBase extends GenericRecordBase { get knownShape(): { [K in keyof TKnown]: ProvableHashableType; }; get(key: K): TKnown[K]; } type DynamicRecordRaw = { entries: Option<{ key: Field; value: Field; }>[]; actual: Unconstrained; }; type UnknownRecord = Record; declare function extractProperty(data: unknown, key: string): unknown;