use crate::config::AppConfig;
use crate::error::AppError;
pub use vti_secrets::SeedStore;
pub use vti_secrets::seed_store::PlaintextSeedStore;
#[cfg(feature = "aws-secrets")]
pub use vti_secrets::seed_store::AwsSeedStore;
#[cfg(feature = "azure-secrets")]
pub use vti_secrets::seed_store::AzureSeedStore;
#[cfg(feature = "config-seed")]
pub use vti_secrets::seed_store::ConfigSeedStore;
#[cfg(feature = "gcp-secrets")]
pub use vti_secrets::seed_store::GcpSeedStore;
#[cfg(feature = "k8s-secrets")]
pub use vti_secrets::seed_store::K8sSeedStore;
#[cfg(feature = "keyring")]
pub use vti_secrets::seed_store::KeyringSeedStore;
#[cfg(feature = "tee")]
pub use vti_secrets::seed_store::KmsTeeSeedStore;
#[cfg(feature = "vault-secrets")]
pub use vti_secrets::seed_store::VaultSeedStore;
pub fn create_seed_store(config: &AppConfig) -> Result<Box<dyn SeedStore>, AppError> {
vti_secrets::create_seed_store(&config.secrets, &config.store.data_dir)
}