import { EpochWithoutId } from "../../EpochStorage";
import { VirtualDeviceKeyBundle, VirtualDevicePrivateKeyBundle, VirtualDevicePublicKeyBundle } from "../key-bundles/VirtualDeviceKeyBundle";
export type VirtualDeviceEncryptedRecoverySecretsSerialized = {
    encryptedEpochSequenceId: string;
    encryptedEpochRootKey: string;
    encryptedEpochStorageKeyPriv: string;
    encryptedDeviceKeyPriv: string;
};
export declare class VirtualDeviceEncryptedRecoverySecrets {
    readonly encryptedEpochSequenceId: Uint8Array;
    readonly encryptedEpochRootKey: Uint8Array;
    readonly encryptedDeviceKeyPriv: Uint8Array;
    readonly encryptedEpochStorageKeyPriv: Uint8Array;
    constructor(encryptedEpochSequenceId: Uint8Array, encryptedEpochRootKey: Uint8Array, encryptedEpochStorageKeyPriv: Uint8Array, encryptedDeviceKeyPriv: Uint8Array);
    static deserialize(virtualDeviceEncryptedRecoverSecretsSerialized: VirtualDeviceEncryptedRecoverySecretsSerialized): VirtualDeviceEncryptedRecoverySecrets;
    serialize(): VirtualDeviceEncryptedRecoverySecretsSerialized;
}
export declare function encryptVirtualDeviceRecoverySecrets(virtualDeviceDecryptionKey: Uint8Array, epochWithoutId: EpochWithoutId, virtualDevicePrivateKeyBundle: VirtualDevicePrivateKeyBundle): VirtualDeviceEncryptedRecoverySecrets;
export declare class CorruptedMessageRecoverySecrets extends Error {
    constructor();
}
export declare function decryptVirtualDeviceRecoverySecrets(virtualDeviceDecryptionKey: Uint8Array, virtualDeviceEncryptedRecoverySecrets: VirtualDeviceEncryptedRecoverySecrets, expectedVirtualDevicePublicKeyBundle: VirtualDevicePublicKeyBundle): {
    epochWithoutId: EpochWithoutId;
    virtualDeviceKeyBundle: VirtualDeviceKeyBundle;
};
//# sourceMappingURL=VirtualDeviceEncryptedRecoverySecrets.d.ts.map