#![forbid(unsafe_code)]
#![warn(missing_docs)]
pub(crate) mod apply;
pub(crate) mod capture;
pub(crate) mod config;
pub(crate) mod error;
pub(crate) mod identity;
pub mod model;
pub(crate) mod plan;
pub(crate) mod reconcile;
pub(crate) mod runtime;
pub(crate) mod store;
#[must_use]
pub const fn version() -> &'static str {
env!("CARGO_PKG_VERSION")
}
pub use apply::{ApplyError, RestApplyResult, SalesforceApplier, project_sync_link};
pub use capture::{capture_batch, capture_stream, load_replay_id};
pub use config::{ConflictPolicy, LaneThresholds, ObjectSync, Owner};
pub use error::ForceSyncError;
pub use identity::SyncKey;
pub use model::{ChangeEnvelope, ChangeOperation, SourceCursor, SourceSystem};
pub use plan::{ApplyLane, MergeOutcome, PlanDecision, PlannerContext, merge_payload, plan_change};
pub use reconcile::DriftItem;
pub use reconcile::{detect_drift, enqueue_repair, run_reconcile_once};
pub use runtime::{SyncEngine, SyncEngineBuilder};
pub use store::pg::{
AppendResult, CheckpointState, DeadLetter, LeasedTask, PgStore, SyncConflict, SyncLink, migrate,
};