pub use solverforge_macros::{planning_entity, planning_model, planning_solution, problem_fact};
pub use solverforge_macros::{PlanningEntityImpl, PlanningSolutionImpl, ProblemFactImpl};
pub use solverforge_config::{SolverConfig, SolverConfigOverride};
pub use solverforge_core::score::{
BendableScore, HardMediumSoftScore, HardSoftDecimalScore, HardSoftScore, Score, SoftScore,
};
pub mod cvrp;
pub mod prelude;
pub mod stream;
#[doc(hidden)]
pub mod __internal;
pub use solverforge_scoring::{
ConstraintMetadata, ConstraintSet, IncrementalBiConstraint, IncrementalConstraint,
IncrementalUniConstraint, Projection, ProjectionSink,
};
pub use solverforge_scoring::{Director, ScoreDirector};
pub use solverforge_solver::heuristic::selector::DefaultDistanceMeter;
pub use solverforge_solver::CrossEntityDistanceMeter;
pub use solverforge_solver::{
analyze, run_solver, run_solver_with_config, Analyzable, ConflictRepairEdit,
ConflictRepairLimits, ConflictRepairProviderEntry, ConflictRepairSpec, ConstraintAnalysis,
ScalarGroupCandidate, ScalarGroupContext, ScalarGroupEdit, ScalarGroupLimits,
ScalarGroupMember, ScalarVariableContext, ScoreAnalysis, SelectorTelemetry, Solvable,
SolverEvent, SolverEventMetadata, SolverLifecycleState, SolverManager, SolverManagerError,
SolverRuntime, SolverSnapshot, SolverSnapshotAnalysis, SolverStatus, SolverTelemetry,
SolverTerminalReason,
};
#[cfg(feature = "console")]
pub use solverforge_console as console;