Can we make the  type less restrictive for the provider in retrieveAndDecrypt()  ?
public async retrieveAndDecrypt( provider: ethers.providers.Web3Provider, conditionExpr: ConditionExpression, variant: FerveoVariant, ciphertext: Ciphertext ): Promise<Uint8Array> {
Not everyone will use a Web interface and Wallet to connect. I'm using it within a node.js application and a JsonRpcProvider.
Using ethers it's probably OK to just use the generic Provider interface.