//! Use [`ditto.auth()`] to obtain a [`DittoAuthenticator`] to view and manage auth settings.
//!
//! Provides access to authentication information and methods for logging on to Ditto Cloud.
//! Relevant when using an [`OnlineWithAuthentication`] identity.
//!
//! [`ditto.auth()`]: crate::Ditto::auth
//! [`OnlineWithAuthentication`]: crate::identity::OnlineWithAuthentication

// TODO(v5): Remove pub
#[doc(hidden)]
pub mod authenticator;
// TODO(v5): Remove pub
#[doc(hidden)]
pub mod login_provider;

pub use authenticator::{AuthenticationClientFeedback, DittoAuthenticator};
pub use login_provider::DittoAuthenticationEventHandler;
pub(crate) use login_provider::LoginProvider;

#[doc(hidden)]
#[deprecated(note = "ValidityListener has no public use and is being removed from the public API")]
pub mod validity_listener {
    // TODO(v5): Make pub(crate), remove deprecation
    #[doc(hidden)]
    #[deprecated(
        note = "ValidityListener has no public use and is being removed from the public API"
    )]
    pub struct ValidityListener(());
}

#[doc(hidden)]
#[deprecated(
    note = "ValidityListener has no public use and is being removed from the public API"
)]
#[allow(deprecated)]
pub use validity_listener::ValidityListener;
