pub mod adapter;
pub mod callbacks;
pub mod component;
pub mod data_loader;
pub mod engine;
pub mod result;
pub(crate) mod serde_helpers;
pub mod state;
pub use adapter::{Candidate, EvaluationBatch, GEPAAdapter, ReflectiveDataset};
pub use component::{ComponentKind, ComponentMeta, ComponentMetaMap, component_kind};
pub use data_loader::{DataId, DataLoader, MutableDataLoader, VecLoader, ensure_loader};
pub use state::{
BEFORE_FIRST_ITERATION, CachedEvaluation, EvaluationCache, FrontierKey, FrontierType,
GEPAState, ObjectiveScores, ProgramIdx, ValsetEvaluation, candidate_hash,
};
pub use result::GEPAResult;
pub use engine::GEPAEngine;
pub use callbacks::{
BudgetUpdatedEvent, CandidateAcceptedEvent, CandidateRejectedEvent, CandidateSelectedEvent,
CompositeCallback, ErrorEvent, EvaluationEndEvent, EvaluationSkippedEvent,
EvaluationStartEvent, GEPACallback, IterationEndEvent, IterationStartEvent, MergeAcceptedEvent,
MergeAttemptedEvent, MergeRejectedEvent, MinibatchSampledEvent, OptimizationEndEvent,
OptimizationStartEvent, ParetoFrontUpdatedEvent, ProposalEndEvent, ProposalStartEvent,
ReflectiveDatasetBuiltEvent, StateSavedEvent, ValsetEvaluatedEvent, notify_callbacks,
};