import { Program, Idl, Wallet } from "@coral-xyz/anchor"; import { Connection, PublicKey } from "@solana/web3.js"; import { PRIVACY_POOL_CURRENT_IDL, PRIVACY_POOL_IDLS, PRIVACY_POOL_LEGACY2_IDL, PRIVACY_POOL_LEGACY_IDL } from "./idl/index.js"; export declare const PRIVACY_POOL_IDL: Idl; export { PRIVACY_POOL_CURRENT_IDL, PRIVACY_POOL_IDLS, PRIVACY_POOL_LEGACY_IDL, PRIVACY_POOL_LEGACY2_IDL, }; /** Deployed program ID extracted from the bundled IDL. */ export declare const PRIVACY_POOL_PROGRAM_ID: PublicKey; /** * Create an Anchor `Program` instance for the Veilo Privacy Pool. * * @param connection Solana RPC connection * @param wallet Anchor-compatible wallet (must implement `publicKey` and `signTransaction`) * @param opts Optional commitment level (default: "confirmed") * * @example * ```ts * import { createVeiloProgram } from "@veilo/sdk-core"; * import { Connection } from "@solana/web3.js"; * * const program = createVeiloProgram( * new Connection("https://api.devnet.solana.com"), * wallet, * ); * ``` */ export declare function createVeiloProgram(connection: Connection, wallet: Wallet, opts?: { commitment?: "processed" | "confirmed" | "finalized"; }): Program; /** * Create a `Program` for reading on-chain accounts, with no wallet. * * The shield path never signs, so requiring a `Wallet` just to decode a * `MerkleTreeAccount` would force integrators to invent a dummy one. This is * safe for `program.account.*.fetch` and the coders; anything that would submit * a transaction will fail, which is the intent. */ export declare function createReadonlyVeiloProgram(connection: Connection, opts?: { commitment?: "processed" | "confirmed" | "finalized"; }): Program;