import { ProvableSerializable } from './util.js'; import { Bool } from '../../../lib/provable/bool.js'; import { Field } from '../../../lib/provable/field.js'; import { Provable } from '../../../lib/provable/provable.js'; import { HashInput } from '../../../lib/provable/types/provable-derivers.js'; export { Bool } from '../../../lib/provable/bool.js'; export { Field } from '../../../lib/provable/field.js'; export { Int64, UInt32, UInt64, Sign } from '../../../lib/provable/int.js'; export { PublicKey } from '../../../lib/provable/crypto/signature.js'; export interface Option { isSome: Bool; value: T; } export declare function Option(T: ProvableSerializable): { sizeInFields(): number; toJSON(x: Option): any; toInput(x: Option): HashInput; toFields(x: Option): Field[]; toAuxiliary(x?: Option): any[]; fromFields(fields: Field[], aux: any[]): Option; toValue(x: Option): Option; fromValue(x: Option): Option; check(_x: Option): never; }; export declare namespace Option { var map: (option: Option, f: (value: A) => B) => Option; var none: (defaultValue: T) => Option; var some: (value: T) => Option; } export interface Range { lower: T; upper: T; } export declare function Range(T: Provable): (new (value: { lower: T; upper: T; }) => { lower: T; upper: T; }) & { _isStruct: true; } & Provable<{ lower: T; upper: T; }, { lower: any; upper: any; }> & { fromValue: (value: { lower: any; upper: any; }) => { lower: T; upper: T; }; toInput: (x: { lower: T; upper: T; }) => { fields?: Field[] | undefined; packed?: [Field, number][] | undefined; }; toJSON: (x: { lower: T; upper: T; }) => { lower: { toFields: {}; toAuxiliary: {}; fromFields: {}; sizeInFields: {}; check: {}; toValue: {}; fromValue: {}; toCanonical?: {} | null | undefined; }; upper: { toFields: {}; toAuxiliary: {}; fromFields: {}; sizeInFields: {}; check: {}; toValue: {}; fromValue: {}; toCanonical?: {} | null | undefined; }; }; fromJSON: (x: { lower: { toFields: {}; toAuxiliary: {}; fromFields: {}; sizeInFields: {}; check: {}; toValue: {}; fromValue: {}; toCanonical?: {} | null | undefined; }; upper: { toFields: {}; toAuxiliary: {}; fromFields: {}; sizeInFields: {}; check: {}; toValue: {}; fromValue: {}; toCanonical?: {} | null | undefined; }; }) => { lower: T; upper: T; }; empty: () => { lower: T; upper: T; }; }; export interface CommittedList { data: Field[][]; hash: Field; } export declare const CommittedList: ProvableSerializable; export type Events = CommittedList; export declare const Events: ProvableSerializable; export type Actions = CommittedList; export declare const Actions: ProvableSerializable; export type AuthRequiredIdentifier = 'Impossible' | 'None' | 'Proof' | 'Signature' | 'Either'; export interface AuthRequired { constant: Bool; signatureNecessary: Bool; signatureSufficient: Bool; } export declare const AuthRequired: { empty(): AuthRequired; isImpossible(x: AuthRequired): Bool; isNone(x: AuthRequired): Bool; isProof(x: AuthRequired): Bool; isSignature(x: AuthRequired): Bool; isEither(x: AuthRequired): Bool; identifier(x: AuthRequired): AuthRequiredIdentifier; toJSON(x: AuthRequired): any; toFields: (value: AuthRequired) => Field[]; toAuxiliary: (value?: AuthRequired | undefined) => any[]; fromFields: (fields: Field[], aux: any[]) => AuthRequired; sizeInFields(): number; check: (value: AuthRequired) => void; toValue: (x: AuthRequired) => AuthRequired; fromValue: (x: AuthRequired) => AuthRequired; toCanonical?: ((x: AuthRequired) => AuthRequired) | undefined; toInput(x: AuthRequired): HashInput; }; export type StateHash = Field; export declare const StateHash: ProvableSerializable; export type TokenId = Field; export declare const TokenId: typeof Field; export interface TokenSymbol { field: Field; symbol: string; } export declare const TokenSymbol: ProvableSerializable; export interface ZkappUri { data: string; hash: Field; } export declare const ZkappUri: ProvableSerializable;