use std::path::PathBuf;
use ockam_core::async_trait;
use ockam_core::Result;
use crate::NamedVault;
#[async_trait]
pub trait VaultsRepository: Send + Sync + 'static {
async fn store_vault(&self, name: &str, path: PathBuf, is_kms: bool) -> Result<NamedVault>;
async fn delete_vault(&self, name: &str) -> Result<()>;
async fn get_named_vault(&self, name: &str) -> Result<Option<NamedVault>>;
async fn get_named_vaults(&self) -> Result<Vec<NamedVault>>;
async fn get_default_vault(&self) -> Result<Option<NamedVault>>;
async fn set_as_default(&self, name: &str) -> Result<()>;
async fn is_default(&self, name: &str) -> Result<bool>;
}