//! Client library for the Nodos Store API.
//!
//! # Example
//!
//! ```no_run
//! use nodos_store_client::StoreClient;
//!
//! let client = StoreClient::builder().build()?;
//!
//! // List packages
//! for pkg in client.list_packages()? {
//!     println!("{}", pkg.name);
//! }
//!
//! // Get releases for a package
//! let releases = client.get_releases("studio.plugin")?;
//! println!("Found {} releases", releases.len());
//! # Ok::<(), nodos_store_client::Error>(())
//! ```

mod auth;
mod client;
mod error;
mod types;

pub use auth::{Auth, TokenStore};
pub use client::{ClientBuilder, StoreClient, DEFAULT_BASE_URL};
pub use error::{ApiError, Error, Result};
pub use types::{
    AccountInfo, ApiVersion, Artifact, DevicePollResponse, DeviceStartResponse, MessageResponse,
    Package, PackageDependency, PackageListResponse, PackageType, PackageVisibility,
    PublishDraftArtifact, PublishFinalizeResponse, PublishSession, PublishSessionCreateRequest,
    PublishSessionSummary,
    PublishUploadUrl, PublishUploadUrlRequest, Release, ReleaseListResponse, StoredAccessToken,
    SUPPORTED_TARGET_PLATFORMS, is_supported_target_platform,
};
