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; commitment: Scalar; } export interface WithdrawReturn { proof: Proof; pubInputs: PubInputs; } export interface WithdrawValues { id: Scalar; nullifierOld: Scalar; trapdoorOld: Scalar; accountBalanceOld: Scalar; merkleRoot: Scalar; path: Uint8Array; value: Scalar; nullifierNew: Scalar; trapdoorNew: Scalar; accountBalanceNew: Scalar; relayerAddress: Scalar; relayerFee: Scalar; address: Scalar; } export declare class Withdraw { #private; withdrawCircuit: singleThreadedWasm.WithdrawCircuit | multiThreadedWasm.WithdrawCircuit; caller: Caller; hasher: Hasher; constructor(caller: Caller); prove(values: WithdrawValues): WithdrawReturn; verify(proof: Proof, pubInputs: PubInputs): void; proveAndVerify(values: WithdrawValues): WithdrawReturn; } export {};