import { NumericString, Groth16Proof, PlonkProof, FflonkProof } from 'snarkjs'; type PackedGroth16Proof = [ NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString ]; type PackedPlonkProof = [ NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString ]; type PackedFflonkProof = [ NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString, NumericString ]; /** * @module ProofPacking * * This module provides utility functions to pack and unpack * various types of objects, making it easier to export or use * them externally. */ /** * Packs a Snarkjs Groth16 proof into a single list usable as calldata in Solidity (public signals are not included). * @param proof The Groth16 proof generated with SnarkJS. * @returns Solidity calldata. */ declare function packGroth16Proof(proof: Groth16Proof): PackedGroth16Proof; /** * Unpacks a PackedGroth16Proof Solidity calldata into its original form which is a SnarkJS Groth16 proof. * @param proof Solidity calldata. * @returns The Groth16 proof compatible with SnarkJS. */ declare function unpackGroth16Proof(proof: PackedGroth16Proof): Groth16Proof; /** * Packs a Snarkjs Plonk proof into a single list usable as calldata in Solidity (public signals are not included). * @param proof The Plonk proof generated with SnarkJS. * @returns Solidity calldata. */ declare function packPlonkProof(proof: PlonkProof): PackedPlonkProof; /** * Unpacks a PackedPlonkProof Solidity calldata into its original form which is a SnarkJS Plonk proof. * @param proof Solidity calldata. * @returns The Plonk proof compatible with SnarkJS. */ declare function unpackPlonkProof(proof: PackedPlonkProof): PlonkProof; /** * Packs a Snarkjs Fflonk proof into a single list usable as calldata in Solidity (public signals are not included). * @param proof The Fflonk proof generated with SnarkJS. * @returns Solidity calldata. */ declare function packFflonkProof(proof: FflonkProof): PackedFflonkProof; /** * Unpacks a PackedFflonkProof Solidity calldata into its original form which is a SnarkJS Fflonk proof. * @param proof Solidity calldata. * @returns The Fflonk proof compatible with SnarkJS. */ declare function unpackFflonkProof(proof: PackedFflonkProof): FflonkProof; export { packFflonkProof, packGroth16Proof, packPlonkProof, unpackFflonkProof, unpackGroth16Proof, unpackPlonkProof };