import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; export interface keypair { publicKey: string; privateKey: string; } export interface Spec extends TurboModule { generateAESKey(keySize: number): string; encryptAES(data: string, key: string): string; decryptAES(data: string, key: string): string; encryptFile( inputPath: string, outputPath: string, key: string ): Promise; decryptFile(inputPath: string, key: string): Promise; encryptAsyncAES(data: string, key: string): Promise; decryptAsyncAES(data: string, key: string): Promise; generateRSAKeyPair(): keypair; getPublicRSAkey(privateRSAkey: string): string; encryptRSA(data: string, publicKey: string): string; decryptRSA(data: string, privateKey: string): string; encryptAsyncRSA(data: string, publicKey: string): Promise; decryptAsyncRSA(data: string, privateKey: string): Promise; signDataRSA(data: string, key: string): string; verifySignatureRSA( data: string, signatureBase64: string, key: string ): boolean; hashSHA256(input: string): string; hashSHA512(input: string): string; generateHMACKey(keySize: number): string; hmacSHA256(data: string, key: string): string; hmacSHA512(data: string, key: string): string; generateRandomString(input: number): string; base64Encode(input: string): string; base64Decode(input: string): string; pbkdf2( password: string, salt: string, iterations: number, keyLength: number, hash: string ): string; getRandomBytes(size: number): string; encryptRSAOAEP(data: string, publicKey: string): string; decryptRSAOAEP(data: string, privateKey: string): string; generateECDSAKeyPair(): keypair; getPublicECDSAKey(privateECDAkey: string): string; signDataECDSA(data: string, key: string): string; verifySignatureECDSA( data: string, signatureBase64: string, key: string ): boolean; } export default TurboModuleRegistry.getEnforcing('Encryption');