import { NativeModules, Platform } from "react-native"; interface RnBbsSignaturesNativeModule { readonly sign: (options: { publicKey: number[]; secretKey: number[]; messageCount: number; messages: number[][]; }) => Promise; readonly blsSign: (options: { publicKey: number[]; secretKey: number[]; messages: number[][]; }) => Promise; readonly verify: (options: { publicKey: number[]; signature: number[]; messageCount: number; messages: number[][]; }) => Promise; readonly blsVerify: (options: { publicKey: number[]; signature: number[]; messages: number[][] }) => Promise; readonly createProof: (options: { nonce: number[]; revealed: readonly number[]; publicKey: number[]; signature: number[]; messages: number[][]; }) => Promise; readonly blsCreateProof: (options: { nonce: number[]; revealed: readonly number[]; publicKey: number[]; signature: number[]; messages: number[][]; }) => Promise; readonly verifyProof: (options: { nonce: number[]; publicKey: number[]; proof: number[]; messages: number[][]; }) => Promise; readonly blsVerifyProof: (options: { nonce: number[]; publicKey: number[]; proof: number[]; messages: number[][]; }) => Promise; readonly generateBls12381G2KeyPair: (options: { seed?: number[]; }) => Promise<{ publicKey: number[]; secretKey: number[] }>; readonly bls12381G2PublicKeyToBbsPublicKey: (options: { publicKey: number[]; messageCount: number; }) => Promise; } export function getNativeRnBbsSignatures(): RnBbsSignaturesNativeModule { const LINKING_ERROR = `The package 'test' doesn't seem to be linked. Make sure: \n\n` + Platform.select({ ios: "- You have run 'pod install'\n", default: "" }) + "- You rebuilt the app after installing the package\n" + "- You are not using Expo Go\n"; return NativeModules.RnBbsSignatures ? NativeModules.RnBbsSignatures : new Proxy( {}, { get(): Error { throw new Error(LINKING_ERROR); }, } ); }