import { PublicKey } from "@solana/web3.js"; /** Poseidon hash function type from circomlibjs. */ export type PoseidonFn = ((inputs: bigint[]) => any) & { F: { toObject: (e: any) => bigint; }; }; /** Initialize the Poseidon hash instance. Must be called once before using any UTXO/merkle/proof helpers. */ export declare function initPoseidon(): Promise; /** Get the initialized Poseidon instance. Throws if `initPoseidon()` has not been called. */ export declare function getPoseidon(): PoseidonFn; /** The BN254 (alt_bn128) scalar field modulus. All Poseidon outputs are reduced modulo this value. */ export declare const BN254_FR_MODULUS: bigint; /** Convert a big-endian byte array to a bigint. */ export declare function bytesToBigIntBE(bytes: Uint8Array): bigint; /** Convert a bigint to a 32-byte big-endian array. */ export declare function bigIntToBytesBE(x: bigint): Uint8Array; /** Convert ffjavascript field element → bigint safely */ export declare function frToBigInt(fe: any): bigint; /** Poseidon hash with 1 input - used for keypair derivation: pubkey = Poseidon(privateKey) */ export declare function poseidon1(a: bigint): bigint; /** Poseidon hash with 2 inputs */ export declare function poseidon2(a: bigint, b: bigint): bigint; /** Poseidon hash with 3 inputs - used for signature: Poseidon(privateKey, commitment, pathIndex) */ export declare function poseidon3(a: bigint, b: bigint, c: bigint): bigint; /** Poseidon hash with 4 inputs - used for UTXO commitment: Poseidon(amount, pubkey, blinding, mintAddress) */ export declare function poseidon4(a: bigint, b: bigint, c: bigint, d: bigint): bigint; /** Convert a Solana PublicKey to a BN254 field element */ export declare function pubkeyToField(pubkey: PublicKey): bigint;