import { HalfCryptoKeyPair } from "encryption/types"; import { JSONValue } from "encoding/json/types"; import { EncryptedData as InternalEncryptedData } from "./symmetric-data-encryptor"; export interface EncryptedKey { encrypted_key: string; } export interface EncryptedData { encrypted_key: EncryptedKey; encrypted_data: InternalEncryptedData; } export interface AsymmetricDataEncryptorI { encrypt(jsonableInput: JSONValue): Promise; decrypt(encryptedObject: EncryptedData, encryptedKeyOverride?: string): Promise; update(newData: JSONValue, existingEncryptedObject: EncryptedData, encryptedKeyOverride?: string): Promise; share(encryptedObject: EncryptedData, publicKeyObj: JsonWebKey, encryptedKeyOverride?: string): Promise; exportPublicKey(): Promise; encryptPrivateKey(publicKeyObjToShareWith: JsonWebKey): Promise; } export declare function AsymmetricDataEncryptor(encryptionKeyPair: CryptoKeyPair | HalfCryptoKeyPair): AsymmetricDataEncryptorI; export declare namespace AsymmetricDataEncryptor { var decodePublicKey: (publicKeyObj: JsonWebKey) => Promise; var getDefaultAlgorithm: () => RsaHashedKeyGenParams; var generateKeyPair: () => Promise; }