import { ExtendedKeyPair, ExtendedPublicKey, KeyPair, PublicKey } from '../../../types/key'; import { _AnyProtocol, _BaseProtocol, _OfflineProtocol } from '../../protocol'; export declare type AsymmetricEncryptionExtension = T extends _OfflineProtocol ? OfflineAsymmetricEncryption<_PublicKey, _KeyPair> : T extends _BaseProtocol ? BaseAsymmetricEncryption<_PublicKey> : never; export interface BaseAsymmetricEncryption<_PublicKey extends PublicKey | ExtendedPublicKey = PublicKey> { encryptAsymmetricWithPublicKey(payload: string, publicKey: _PublicKey): Promise; } export interface OfflineAsymmetricEncryption<_PublicKey extends PublicKey | ExtendedPublicKey = PublicKey, _KeyPair extends KeyPair | ExtendedKeyPair = KeyPair> extends BaseAsymmetricEncryption<_PublicKey> { decryptAsymmetricWithKeyPair(payload: string, keyPair: _KeyPair): Promise; }