//! Middleware layers for the API.

pub mod admission;
pub mod api_key;
pub mod circuit_breaker;
pub mod meter;

pub use admission::{
    AdmissionExtension, AdmissionLayer, AdmissionService, AGENT_ID_HEADER, POW_DIFFICULTY_HEADER,
    POW_NONCE_HEADER, POW_REQUIRED_HEADER, POW_TIMESTAMP_HEADER, QUOTA_MULTIPLIER_HEADER,
    TRUST_TIER_HEADER,
};
pub use api_key::{
    ApiKeyAuthConfig, ApiKeyAuthLayer, ApiKeyAuthService, ApiKeyExtension, API_KEY_HEADER,
    RATE_LIMIT_REMAINING_HEADER, RATE_LIMIT_RESET_HEADER,
};
pub use circuit_breaker::{
    CircuitBreakerLayer, CircuitBreakerService, CIRCUIT_FAILURES_HEADER,
    CIRCUIT_RETRY_AFTER_HEADER, CIRCUIT_STATE_HEADER,
};
pub use meter::{MeterLayer, MeterService};
