import type { RawProof, TransactionProofStruct } from "./types.js"; /** * Turn a snarkjs Groth16 proof into 256 bytes: * A(G1) | B(G2) | C(G1) * where: * A = (ax, ay) -> 64 bytes * B = (bx1, bx0, by1, by0) -> 128 bytes (swapped pairs for alt_bn128) * C = (cx, cy) -> 64 bytes * * Each field element is encoded as 32-byte BE to match the on-chain verifier. * We ignore the extra projective/z components snarkjs keeps. */ export declare function packProofToBytes(proof: RawProof): Uint8Array; /** * Encode a snarkjs proof into the TransactionProofStruct format expected by the on-chain program. */ export declare function encodeSnarkjsProofToTransactionProof(proof: RawProof): TransactionProofStruct;