import { Scalar } from "./crypto/scalar"; import { NewAccount, NewAccountReturn, NewAccountValues } from "./crypto/circuits/newAccount"; import { Deposit, DepositReturn, DepositValues } from "./crypto/circuits/deposit"; import { Withdraw, WithdrawReturn, WithdrawValues } from "./crypto/circuits/withdraw"; import { Merkle } from "./crypto/circuits/merkle"; import { Hasher } from "./crypto/hasher"; import { SecretGenerator, ShielderActionSecrets } from "./crypto/secretGenerator"; import { Converter } from "./crypto/conversion"; import { Hex } from "viem"; export type Caller = "web_singlethreaded" | "web_multithreaded"; export type Proof = Uint8Array; export type { NewAccountReturn, DepositReturn, NewAccountValues, DepositValues, SecretGenerator, ShielderActionSecrets }; export declare class WasmClient { threads: number | undefined; newAccount: NewAccount | undefined; deposit: Deposit | undefined; withdraw: Withdraw | undefined; merkle: Merkle | undefined; hasher: Hasher | undefined; secretGenerator: SecretGenerator | undefined; converter: Converter | undefined; initialized: boolean; init(caller: Caller, threads: number): Promise; proveAndVerifyNewAccount: (values: NewAccountValues) => NewAccountReturn; proveAndVerifyDeposit(values: DepositValues): DepositReturn; proveAndVerifyWithdraw(values: WithdrawValues): WithdrawReturn; proveAndVerifyMerkle(): Proof; poseidonHash(inputs: Scalar[]): Scalar; getSecrets(id: Scalar, nonce: bigint): ShielderActionSecrets; merklePathAndRoot(rawPath: readonly bigint[]): [Uint8Array, Scalar]; privateKeyToScalar(hex: Hex): Scalar; arity(): number; }