pub mod auth;
pub mod client;
pub mod client_abilities_token;
pub mod connectivity_enrichment;
pub mod constants;
pub mod db_client;
pub mod gallery;
#[cfg(feature = "media")]
pub mod media_sync;
pub mod models;
pub mod pubsub_token;
#[cfg(feature = "media")]
mod scan;
pub mod storage;
pub mod sync;
pub mod time_util;
pub mod tus;
pub mod ui;
pub use auth::{
get_user_device_access, get_user_herd_access, AuthError, HerdRole, UserAccessConfig,
UserDeviceAccess, UserHerdAccess,
};
pub use client::{push_tags_batched, TagPrettyLocation};
pub use client_abilities_token::{
fetch_client_abilities_jwt_public_keys, mint_client_abilities_token,
verify_client_abilities_token, ClientAbilitiesHerdClaim, ClientAbilitiesJwkPublicKey,
ClientAbilitiesTokenClaims, ClientAbilitiesTokenConfig, ClientAbilitiesTokenError,
ClientAbilitiesTokenMint, MintClientAbilitiesTokenError, CLIENT_ABILITIES_JWT_AUDIENCE,
};
pub use connectivity_enrichment::{
apply_connectivity_to_embedding_vertex, apply_connectivity_to_segmentation_sam3,
apply_connectivity_to_tag, best_connectivity_match_index, connectivity_observation_unix_secs,
enrich_segmentations_sam3_with_connectivity, enrich_tags_with_connectivity,
CONNECTIVITY_TIMESTAMP_MATCH_TOLERANCE_SECS,
};
pub use db_client::{
ConnectivityWithCoordinates, DatabaseConfig, ScoutDbClient, UserSessionTimeFilters,
};
pub use gallery::{
classify_media, GalleryCursor, GalleryFeedType, GalleryItem, GalleryItemKey, GalleryItemsByIds,
GalleryPage, GalleryPageOptions, MediaKind,
};
#[cfg(feature = "media")]
pub use media_sync::{MediaSource, MediaSyncClient, MediaSyncOptions, MediaSyncSummary};
pub use pubsub_token::{
can_publish, can_subscribe, fetch_pubsub_jwt_public_keys, mint_pubsub_token,
mint_service_pubsub_token, sync_pubsub_public_keys_to_dir, verify_pubsub_token,
MintPubsubTokenError, PubsubJwkPublicKey, PubsubTokenClaims, PubsubTokenConfig,
PubsubTokenError, PubsubTokenMint,
};