// ============================================================================
// Type Definitions
//
// This module has been split into submodules for better organization.
// All types are re-exported here for backward compatibility.
// ============================================================================

// Re-export all types from submodules
pub mod config;
pub mod constants;
pub mod emitter;
pub mod enums;
pub mod event;
pub mod sinks;
pub mod structs;

pub use config::{ConcurrencyConfig, MemoryConfig, StorageConfig};
pub use constants::{
    MAX_ARTIFACT_SIZE, MAX_DESCRIPTION_LEN, MAX_EPISODE_SIZE, MAX_OBSERVATION_LEN, MAX_STEP_COUNT,
};
pub use emitter::{CloudEvent, EventEmitter, EventEmitterMode, MemoryEventMapping};
pub use enums::{ComplexityLevel, ExecutionResult, TaskOutcome, TaskType};
pub use event::{DEFAULT_EVENT_CHANNEL_CAPACITY, MemoryEvent, unix_now_secs};
pub use sinks::{LogEmitter, NoOpEmitter};

#[cfg(feature = "http-emitter")]
pub use sinks::HttpEmitter;
pub use structs::{DualRewardScore, Evidence, OutcomeStats, Reflection, RewardScore, TaskContext};

pub use crate::memory::step_buffer::BatchConfig;

#[cfg(test)]
mod tests;
