import Foundation /// Public MainActor-bound accessors for IMessageSync module singletons. /// /// Since `SyncManager` is an internal type (not public), MacSyncApp can't reference /// `IMessageSync.SyncManager.shared` directly. These @MainActor static wrappers expose /// the interface MacSyncApp needs without leaking the internal type. @MainActor public enum IMessageSyncModule { /// Start the iMessage sync cycle. Delegates to the internal SyncManager. public static func startSync() { SyncManager.shared.startSync() } /// Trigger an immediate sync cycle. Delegates to the internal SyncManager. public static func syncNow() { SyncManager.shared.syncNow() } /// Whether a sync is currently in progress. public static var isSyncing: Bool { SyncManager.shared.isSyncing } /// Date of the last completed sync cycle. public static var lastSyncCompletedAt: Date? { SyncManager.shared.lastSyncCompletedAt } /// Current sync error message, empty string if none. public static var syncErrorMessage: String { SyncManager.shared.syncError.message } }