import { Scalar } from "../../crypto/scalar"; import * as singleThreadedWasm from "../../crates/shielder-wasm/pkg/pkg-web-singlethreaded/shielder_wasm.js"; import * as multiThreadedWasm from "../../crates/shielder-wasm/pkg/pkg-web-multithreaded/shielder_wasm.js"; import { Proof, Caller } from "../../wasmClient"; import { Hasher } from "../../crypto/hasher"; interface PubInputs { idHiding: Scalar; hNullifierOld: Scalar; hNoteNew: Scalar; merkleRoot: Scalar; value: Scalar; } export interface DepositReturn { proof: Proof; pubInputs: PubInputs; } export interface DepositValues { id: Scalar; nullifierOld: Scalar; trapdoorOld: Scalar; accountBalanceOld: Scalar; merkleRoot: Scalar; path: Uint8Array; value: Scalar; nullifierNew: Scalar; trapdoorNew: Scalar; accountBalanceNew: Scalar; } export declare class Deposit { #private; depositCircuit: singleThreadedWasm.DepositCircuit | multiThreadedWasm.DepositCircuit | undefined; caller: Caller; hasher: Hasher; constructor(caller: Caller); prove(values: DepositValues): DepositReturn; verify(proof: Proof, pubInputs: PubInputs): void; proveAndVerify(values: DepositValues): DepositReturn; } export {};