use std::fmt::Display;
use async_trait::async_trait;
use serde_json::Map;
use serde_json::Value;
pub type JsonObject = Map<String, Value>;
#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
pub trait JwsSigner {
type Error: Display;
async fn sign(&self, header: &JsonObject, payload: &JsonObject) -> Result<Vec<u8>, Self::Error>;
}