import { SecretShares } from "./types"; /** * Encryption utilities using AES-256-GCM and Shamir Secret Sharing */ /** * Generate a random encryption key */ export declare function generateEncryptionKey(): string; /** * Encrypt data using AES-256-GCM * @param data Plaintext data to encrypt * @param key Encryption key (hex string) * @returns Encrypted data as hex string */ export declare function encryptAES(data: string, key: string): Promise; /** * Decrypt data using AES-256-GCM * @param encryptedData Encrypted data as hex string * @param key Decryption key (hex string) * @returns Decrypted plaintext */ export declare function decryptAES(encryptedData: string, key: string): Promise; /** * Split a secret key into shares using Shamir Secret Sharing * @param secret Secret to split (hex string) * @param threshold Number of shares needed to reconstruct (default: 2) * @param totalShares Total number of shares to create (default: 3) * @returns Object containing the shares */ export declare function splitSecret(secret: string, threshold?: number, totalShares?: number): SecretShares; /** * Combine shares to reconstruct the secret * @param shares Array of share strings * @returns Reconstructed secret (hex string) */ export declare function combineShares(shares: string[]): string; /** * Encrypt a share for a specific recipient using their public key * Note: This is a placeholder - in production, use proper ECIES encryption * @param share Share to encrypt * @param publicKey Recipient's public key (hex string) * @returns Encrypted share (hex string) */ export declare function encryptShareForRecipient(share: string, publicKey: string): Promise; /** * Decrypt a share encrypted for the recipient * @param encryptedShare Encrypted share * @param privateKey Recipient's private key (hex string) * @returns Decrypted share */ export declare function decryptShareFromRecipient(encryptedShare: string, privateKey: string): Promise;