//! PAS network-boundary port and deep refresh core.
//!
//! See `0context/STANDARDS_SESSION_LIVENESS.md` for the consumer
//! contract the port encodes.
//!
//! Module structure:
//!
//! - [`PasAuthPort`] / [`PasFailure`] — port + failure vocabulary, available
//!   under the `oauth` feature.
//! - [`pas_refresh`] / [`PasRefreshOutcome`] / [`CipherFailure`] — the
//!   decrypt-and-classify deep core, gated under `session-liveness` because
//!   it depends on [`TokenCipher`](crate::session_liveness::TokenCipher).

mod port;
#[cfg(feature = "session-liveness")]
mod core;
#[cfg(any(test, feature = "test-support"))]
mod memory;

pub use port::{PasAuthPort, PasFailure};
#[cfg(feature = "session-liveness")]
pub use core::{CipherFailure, PasRefreshOutcome, pas_refresh};
#[cfg(any(test, feature = "test-support"))]
pub use memory::MemoryPasAuth;
