import { Bool } from '../../provable/bool.js'; import { Field } from '../../provable/field.js'; import { Provable } from '../../provable/types/provable-intf.js'; import * as Bindings from '../../../bindings/mina-transaction/v2/index.js'; import { Types } from '../../../bindings/mina-transaction/v1/types.js'; export { Option, Range, mapUndefined, Empty, Update, Compare, Eq, ToFields, Tuple, ProvableTuple, ProvableInstance, ProvableTupleInstances, TokenId, ZkappUri, mapObject, }; declare function mapObject(object: In, f: (key: Key) => Out[Key]): { [key in keyof In]: Out[key]; }; declare const Option: typeof Bindings.Leaves.Option, Range: typeof Bindings.Leaves.Range; type Option = Bindings.Leaves.Option; type Range = Bindings.Leaves.Range; declare class ZkappUri { readonly data: string; readonly hash: Field; constructor(uri: string | { data: string; hash: Field; }); toJSON(): Types.Json.AccountUpdate['body']['update']['zkappUri']; static empty(): ZkappUri; static from(uri: ZkappUri | string): ZkappUri; } declare class TokenId { value: Field; constructor(value: Field); equals(x: TokenId): Bool; toString(): string; static MINA: TokenId; } declare function mapUndefined(value: A | undefined, f: (a: A) => B): B | undefined; interface Empty { empty: () => T; } interface Eq { equals(x: T): Bool; } type Compare> = Eq & { lessThan(x: T): Bool; lessThanOrEqual(x: T): Bool; greaterThan(x: T): Bool; greaterThanOrEqual(x: T): Bool; }; interface ToFields { toFields(): Field[]; } type Tuple = [T, ...T[]] | []; type ProvableTuple = Tuple>; type ProvableInstance

= P extends Provable ? (unknown extends T ? T : never) : never; type ProvableTupleInstances = { [I in keyof T]: ProvableInstance; }; declare class Update { set: Bool; value: T; constructor(set: Bool, value: T); toOption(): Option; static fromOption(option: Option): Update; static disabled(defaultValue: T): Update; static set(value: T): Update; static from(value: Update | T | undefined, defaultValue: T): Update; }