import { ProjConstructor } from "./noble/curves/weierstrass.js"; export declare const BlsG1: ProjConstructor; export declare const BlsG2: ProjConstructor<{ c0: bigint; c1: bigint; }>; export declare function isBlsG1(stuff: any): stuff is BlsG1; export declare function isBlsG2(stuff: any): stuff is BlsG2; type UnwrapProjConstructor> = Stuff extends ProjConstructor ? T : never; export type Fp2 = UnwrapProjConstructor; export declare function isFp2(stuff: any): stuff is Fp2; type ConstructorReturnType = CtorLike extends { new (...args: any): infer ReturnT; } ? ReturnT : never; export type BlsG1 = ConstructorReturnType; export type BlsG2 = ConstructorReturnType; export declare function bls12_381_G1_add(a: BlsG1, b: BlsG1): BlsG1; export declare function bls12_381_G1_neg(elem: BlsG1): BlsG1; export declare function bls12_381_G1_scalarMul(n: number | bigint, g1: BlsG1): BlsG1; export declare function bls12_381_G1_equal(a: BlsG1, b: BlsG1): boolean; export declare function bls12_381_G1_hashToGroup(a: Uint8Array, b: Uint8Array): BlsG1; export declare function bls12_381_G1_compress(elem: BlsG1): Uint8Array; export declare function bls12_381_G1_uncompress(compressed: Uint8Array): BlsG1; export declare function bls12_381_G2_add(a: BlsG2, b: BlsG2): BlsG2; export declare function bls12_381_G2_neg(elem: BlsG2): BlsG2; export declare function bls12_381_G2_scalarMul(n: number | bigint, g2: BlsG2): BlsG2; export declare function bls12_381_G2_equal(a: BlsG2, b: BlsG2): boolean; export declare function bls12_381_G2_hashToGroup(a: Uint8Array, b: Uint8Array): BlsG2; export declare function bls12_381_G2_compress(elem: BlsG2): Uint8Array; export declare function bls12_381_G2_uncompress(compressed: Uint8Array): BlsG2; export declare function bls12_381_millerLoop(g1: BlsG1, g2: BlsG2): BlsResult; export declare function bls12_381_mulMlResult(a: BlsResult, b: BlsResult): BlsResult; export declare const bls12_381_eqMlResult: (a: BlsResult, b: BlsResult) => boolean; export declare function bls12_381_finalVerify(a: BlsResult, b: BlsResult): boolean; export type BlsResult = { c0: Fp6_t; c1: Fp6_t; }; export declare function isBlsResult(stuff: any): stuff is BlsResult; type Fp6_t = { c0: Fp2; c1: Fp2; c2: Fp2; }; export declare function isFp6(stuff: any): stuff is Fp6_t; export {};