import type { EncryptedMessage, WalletConfig, WalletExportImportConfig, WalletConfigRekey, PlaintextMessage } from '../types'; import type { Buffer } from '../utils/buffer'; export interface Wallet { publicDid: DidInfo | undefined; isInitialized: boolean; isProvisioned: boolean; create(walletConfig: WalletConfig): Promise; createAndOpen(walletConfig: WalletConfig): Promise; open(walletConfig: WalletConfig): Promise; rotateKey(walletConfig: WalletConfigRekey): Promise; close(): Promise; delete(): Promise; export(exportConfig: WalletExportImportConfig): Promise; import(walletConfig: WalletConfig, importConfig: WalletExportImportConfig): Promise; initPublicDid(didConfig: DidConfig): Promise; createDid(didConfig?: DidConfig): Promise; pack(payload: Record, recipientKeys: string[], senderVerkey?: string): Promise; unpack(encryptedMessage: EncryptedMessage): Promise; sign(data: Buffer, verkey: string): Promise; verify(signerVerkey: string, data: Buffer, signature: Buffer): Promise; generateNonce(): Promise; } export interface DidInfo { did: string; verkey: string; } export interface DidConfig { seed?: string; } export interface UnpackedMessageContext { plaintextMessage: PlaintextMessage; senderKey?: string; recipientKey?: string; }