import type { Program, Idl } from "@coral-xyz/anchor"; import { Keypair, PublicKey } from "@solana/web3.js"; import type { ExtData, TransactionProofStruct } from "../proofs/types.js"; import type { NoteCiphers } from "../compactNote.js"; /** * Execute a transaction on the privacy pool. * This is the low-level function that calls the on-chain `transact` instruction. * * @param publicAmount - Positive for deposits, negative for withdrawals, 0 for transfers * @param inputTreeId - The tree ID where input UTXOs are located * @param outputTreeId - The tree ID where output commitments will be inserted */ export declare function transact(params: { program: Program; relayer: Keypair; recipient: PublicKey; mintAddress: PublicKey; root: Uint8Array; inputTreeId: number; outputTreeId: number; publicAmount: bigint; inputNullifiers: [Uint8Array, Uint8Array]; outputCommitments: [Uint8Array, Uint8Array]; extData: ExtData; proof: TransactionProofStruct; /** Unix timestamp after which the tx is invalid. Defaults to 10 minutes from build time. */ deadline?: bigint; /** Optional compact recovery payload emitted with the two output commitments. */ noteCiphers?: NoteCiphers | null; vaultTokenAccount?: PublicKey; userTokenAccount?: PublicKey; recipientTokenAccount?: PublicKey; relayerTokenAccount?: PublicKey; }): Promise;