pub(crate) mod center_correction;
pub(crate) mod completion;
pub(crate) mod dedup;
pub(crate) mod global_filter;
pub(crate) mod id_correction;
pub(crate) mod inner_as_outer_recovery;
pub(crate) mod inner_fit;
pub(crate) mod marker_build;
pub(crate) mod outer_fit;
pub(crate) mod config;
pub(crate) use center_correction::{
apply_projective_centers, warn_center_correction_without_intrinsics,
};
pub(crate) use completion::{CompletionStats, complete_with_h};
pub use config::{
CircleRefinementMethod, CompletionParams, DetectConfig, IdCorrectionConfig,
InnerAsOuterRecoveryConfig, InnerFitConfig, MarkerScalePrior, OuterFitConfig,
ProjectiveCenterParams, ProposalDownscale, ScaleTier, ScaleTiers, SeedProposalParams,
};
pub use dedup::{dedup_by_id, dedup_markers};
pub use global_filter::global_filter;
pub(crate) use id_correction::verify_and_correct_ids;
pub(crate) use inner_as_outer_recovery::{
annotate_neighbor_radius_ratios, try_recover_inner_as_outer,
};
pub use inner_fit::{InnerFitReason, InnerFitStatus};
pub use marker_build::{DetectedMarker, DetectionSource, FitMetrics};
pub(crate) use outer_fit::{
OuterFitCandidate, fit_outer_candidate_from_prior_for_completion,
median_outer_radius_from_neighbors_px,
};