use gam_runtime::warm_start::{LoadSource, Session as CacheSession};
use crate::estimate::EstimationError;
use crate::solver::estimate::reml::reml_outer_engine::BarrierConfig;
use crate::solver::priority_selection::{
PriorityBudgetStage, PriorityStageSummary, rank_indices_with_budget_cascade,
};
use crate::solver::startup_stats::{
SeedRejection, StartupStats, format_no_seeds_passed, uniform_structural_key,
};
use ::opt::{
Arc as ArcOptimizer, ArcError, Bfgs, BfgsError, Bounds, FallbackPolicy as OptFallbackPolicy,
FirstOrderObjective, FirstOrderSample, FixedPoint, FixedPointError, FixedPointObjective,
FixedPointSample, FixedPointStatus, GradientTolerance, HessianFallbackPolicy,
HessianMaterialization, HessianOperator, HessianValue, InitialMetric, MatrixFreeTrustRegion,
MaxIterations, ObjectiveEvalError, OperatorObjective, OperatorSample, OptimizationStatus,
OptimizerObserver, SecondOrderObjective, SecondOrderSample, Solution, StepInfo, Tolerance,
ZerothOrderObjective,
};
use ndarray::{Array1, Array2, ArrayView2};
use std::sync::Arc;
use std::sync::Mutex;
use std::sync::atomic::{AtomicBool, AtomicU64, AtomicUsize, Ordering};
mod bridges;
mod capability;
mod fd_audit; mod hessian_operator;
mod objective;
mod run;
mod run_plan;
mod seed_screening;
pub(crate) use crate::model_types::CERTIFICATE_RAIL_MARGIN;
pub use crate::model_types::CriterionCertificate;
pub(crate) use bridges::*;
pub use capability::*;
pub(crate) use fd_audit::*; pub use gam_problem::{HessianResult, OuterEval};
pub use hessian_operator::*;
pub use objective::*;
pub(crate) use run::*;
pub use run::OuterProblem;
pub(crate) use run_plan::*;
pub use run_plan::{arm_outer_wall_clock_deadline, clear_outer_wall_clock_deadline};
pub(crate) use seed_screening::*;