import * as anchor from "@coral-xyz/anchor"; import type { Program, Idl } from "@coral-xyz/anchor"; import { Keypair, PublicKey } from "@solana/web3.js"; import type { PrivacyConfigAccount } from "../config.js"; /** * Initialize the global config (one-time setup). */ export declare function initializeGlobalConfig(params: { program: Program; admin: anchor.Wallet; payer: Keypair; }): Promise; /** * Initialize a privacy pool with the new parameters. * Creates the first merkle tree (tree ID 0). */ export declare function initializePool(params: { program: Program; admin: anchor.Wallet; payer: Keypair; feeBps: number; mintAddress: PublicKey; minDepositAmount?: bigint; maxDepositAmount?: bigint; minWithdrawAmount?: bigint; maxWithdrawAmount?: bigint; }): Promise; /** * Update pool configuration. */ export declare function updatePoolConfig(params: { program: Program; admin: anchor.Wallet; mintAddress: PublicKey; minDepositAmount?: bigint; maxDepositAmount?: bigint; minWithdrawAmount?: bigint; maxWithdrawAmount?: bigint; feeBps?: number; feeErrorMarginBps?: number; minWithdrawalFee?: bigint; minSwapFee?: bigint; swapFeeBps?: number; }): Promise; /** * Add a new Merkle tree to the pool. * The treeId must equal the current num_trees value in the pool config. */ export declare function addMerkleTree(params: { program: Program; relayer: Keypair; mintAddress: PublicKey; treeId: number; }): Promise; /** * Get the pool configuration account. */ export declare function getPoolConfig(program: Program, mintAddress: PublicKey): Promise; /** * Add a relayer to the pool. */ export declare function addRelayer(params: { program: Program; admin: anchor.Wallet; mintAddress: PublicKey; newRelayer: PublicKey; }): Promise; /** * Set the paused state of a pool. */ export declare function setPaused(params: { program: Program; admin: anchor.Wallet; mintAddress: PublicKey; paused: boolean; }): Promise; /** * Update the global config. * Currently takes no extra args — only admin verification. */ export declare function updateGlobalConfig(params: { program: Program; admin: anchor.Wallet; }): Promise;