import * as ellipticPkg from 'elliptic'; import { Decryptor, EciesScheme, Encryptor } from '../encryption/encryption.js'; import { PubKeyEncodable } from '../reencryption/index.js'; export declare const TEST_ECIES_PUB_KEY = "0x02516bda9e68a1c3dce74dc1b6ed7d91a91d51c1e1933947f06331cef59631e9eb"; export declare const TEST_ECIES_PRIVATE_KEY = "0x384a707568ab63ad2ad9f10135faa0699801db3174f33f7846badc11affb8f57"; export interface Secp256k1Keypair extends PubKeyEncodable { scheme: EciesScheme; kp: ellipticPkg.ec.KeyPair; } export type Secp256k1PubKey = ellipticPkg.curve.base.BasePoint; export declare function toSecp256k1Keypair(kp: ellipticPkg.ec.KeyPair): Secp256k1Keypair; export declare function generateSecp256k1Keypair(): Secp256k1Keypair; export declare function encodeSecp256k1PublicKey(pub: Secp256k1PubKey): Uint8Array; export declare function decodeSecp256k1PublicKey(pubKeyCompressed: Uint8Array): Secp256k1PubKey; export declare function decodeSecp256k1PrivateKey(privKey: Uint8Array): Secp256k1Keypair; export declare function encrypt(pubKeyA: Secp256k1PubKey, plaintext: Uint8Array, privKeyB: Secp256k1Keypair): Promise; export type EciesEncryptorArgs = { pubKeyA: Secp256k1PubKey; privKeyB: Secp256k1Keypair; }; export declare function getEciesEncryptor({ pubKeyA, privKeyB, }: EciesEncryptorArgs): Encryptor; export declare function decrypt(privKeyA: Secp256k1Keypair, ciphertext: Uint8Array): Promise; export type EciesDecryptorArgs = { privKeyA: Secp256k1Keypair; }; export declare function getEciesDecryptor({ privKeyA, }: EciesDecryptorArgs): Decryptor;