use std::fmt::Debug;
use async_trait::async_trait;
use cdk_common::{AuthToken, MintInfo};
use super::Error;
use crate::nuts::{Id, KeySet, KeysetResponse, MintAuthRequest, MintResponse};
#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
pub trait AuthMintConnector: Debug {
async fn get_auth_token(&self) -> Result<AuthToken, Error>;
async fn set_auth_token(&self, token: AuthToken) -> Result<(), Error>;
async fn get_mint_info(&self) -> Result<MintInfo, Error>;
async fn get_mint_blind_auth_keyset(&self, keyset_id: Id) -> Result<KeySet, Error>;
async fn get_mint_blind_auth_keysets(&self) -> Result<KeysetResponse, Error>;
async fn post_mint_blind_auth(&self, request: MintAuthRequest) -> Result<MintResponse, Error>;
}