//! Cohort engine: named user segments with per-cohort signal state.
//!
//! A cohort is a named group of users defined by a predicate over user metadata.
//! When a signal is recorded with user context, the cohort engine evaluates the
//! user's metadata against all registered cohort predicates and records the signal
//! into per-cohort signal state. This enables cohort-scoped trending, top, and
//! other ranking surfaces.

pub mod checkpoint;
pub mod ledger;
pub mod resolver;
pub mod types;

pub use ledger::CohortSignalLedger;
pub use resolver::CohortResolver;
pub use types::{
    CohortDef, CohortName, CohortRegistry, Predicate, deserialize_cohort_def, serialize_cohort_def,
};
