pub use solverforge_macros::{
planning_entity, planning_model, planning_solution, problem_fact, solverforge_constraints,
};
pub use solverforge_config::{
AcceptorConfig, CandidateTraceConfig, ConstructionHeuristicType, ConstructionObligation,
EnvironmentMode, ForagerConfig, HardRegressionPolicyConfig, MoveSelectorConfig,
MoveThreadCount, PhaseConfig, RecreateHeuristicType, SolverConfig, SolverConfigOverride,
UnionSelectionOrder,
};
pub use solverforge_core::domain::{EntityClassId, ProblemFactClassId, VariableId};
pub use solverforge_core::score::{
BendableScore, HardMediumSoftScore, HardSoftDecimalScore, HardSoftScore, Score, SoftScore,
};
pub mod cvrp;
pub mod planning;
pub mod prelude;
pub mod stream;
#[doc(hidden)]
pub mod __internal;
pub use solverforge_scoring::{
fixed_weight, hard_weight, ConstraintMetadata, ConstraintSet, FixedWeight, HardWeight,
IncrementalBiConstraint, IncrementalConstraint, IncrementalConstraintSealed,
IncrementalUniConstraint, ListPrecedenceMakespanConstraint, Projection, ProjectionSink,
SharedNodeDiagnostics, SharedNodeId, SharedNodeOperation,
};
pub use solverforge_scoring::{Director, ScoreDirector};
pub use solverforge_bridge as bridge;
pub use solverforge_solver::heuristic::selector::DefaultDistanceMeter;
pub use solverforge_solver::stats::{
CandidatePullTelemetry, CandidateTraceCompositeIdentity, CandidateTraceConstructionTarget,
CandidateTraceCoordinate, CandidateTraceDigest, CandidateTraceDisposition,
CandidateTraceExecutionPolicy, CandidateTraceExternalDigest, CandidateTraceHeader,
CandidateTraceIdentity, CandidateTraceInputAttestation, CandidateTraceInputProvenance,
CandidateTraceInputProvenanceStatus, CandidateTraceOperationIdentity,
CandidateTracePhaseAttribute, CandidateTracePhasePlan, CandidateTraceProvenanceStatus,
CandidateTraceQualificationError, CandidateTraceQualificationStatus, CandidateTraceSource,
CandidateTraceTelemetry, QualifiedCandidateTraceRunProvenance, CANDIDATE_TRACE_FORMAT_VERSION,
};
pub use solverforge_solver::CrossEntityDistanceMeter;
pub use solverforge_solver::{
analyze, local_search, Analyzable, AppliedMoveTelemetry, ConflictRepair, ConstraintAnalysis,
CustomSearchPhase, ExhaustiveSearchConfig, ExhaustiveSearchPhase, ExplorationType,
FunctionalPartitioner, MoveTelemetry, PartitionedSearchPhase, PhaseTelemetry, RepairCandidate,
RepairLimits, RepairProvider, ScalarAssignmentRule, ScalarCandidate, ScalarCandidateProvider,
ScalarEdit, ScalarGroup, ScalarGroupLimits, ScalarTarget, ScoreAnalysis, Search, SearchContext,
SelectorTelemetry, SimpleDecider, SolutionPartitioner, Solvable, SolverEvent,
SolverEventMetadata, SolverLifecycleState, SolverManager, SolverManagerError, SolverRuntime,
SolverSnapshot, SolverSnapshotAnalysis, SolverStatus, SolverTelemetry, SolverTelemetryDetail,
SolverTerminalReason, ThreadCount,
};
#[cfg(feature = "console")]
pub use solverforge_console as console;