@class NSDate, NSString, NSError, _SYSharedServiceDB, NSSet, NSMutableDictionary, NSDictionary, NSObject, NSMutableSet; @protocol OS_os_transaction, OS_dispatch_queue; @interface SYPersistentStore : NSObject { NSString *_path; struct __CFString { } *_loggingFacility; double _timeToLiveCache; NSObject *_transaction; BOOL _changeTrackingEnabled; NSString *_peerID; NSMutableDictionary *_peerSeqnoSets; NSMutableSet *_ignoringMessageIDs; NSObject *_syncQ; struct sqlite3 { } *_db; struct sqlite3_stmt { } *_getInFullSync; struct sqlite3_stmt { } *_getChangeCount; struct sqlite3_stmt { } *_getNextExpireTime; struct sqlite3_stmt { } *_purgeExpiredChanges; struct sqlite3_stmt { } *_insertChange; struct sqlite3_stmt { } *_getFullsyncSent; struct sqlite3_stmt { } *_setFullsyncSent; struct sqlite3_stmt { } *_logSyncComplete; struct sqlite3_stmt { } *_getChangeIDsSinceVersion; struct sqlite3_stmt { } *_getLocalVersion; struct sqlite3_stmt { } *_getOldestVersion; struct sqlite3_stmt { } *_setVectorClock; struct sqlite3_stmt { } *_setPeerSeqNo; struct sqlite3_stmt { } *_getPeerSeqNo; struct sqlite3_stmt { } *_setPeerSeqNoSet; struct sqlite3_stmt { } *_enterFullSync; struct sqlite3_stmt { } *_exitFullSync; struct sqlite3_stmt { } *_getIgnoringSyncID; struct sqlite3_stmt { } *_getCurrentSyncID; struct sqlite3_stmt { } *_getCurrentSyncStartTime; struct sqlite3_stmt { } *_getLastEndedSyncID; struct sqlite3_stmt { } *_getWaitingForSyncID; struct sqlite3_stmt { } *_setWaitingForSyncID; struct sqlite3_stmt { } *_setAllSentForSyncID; struct sqlite3_stmt { } *_getAllSentForCurrentSync; struct sqlite3_stmt { } *_getLastSyncError; struct sqlite3_stmt { } *_setSyncUserInfo; struct sqlite3_stmt { } *_getSyncUserInfo; struct sqlite3_stmt { } *_setSyncIDSOptions; struct sqlite3_stmt { } *_getSyncIDSOptions; } @property (retain, nonatomic) NSSet *cachedChangedSyncIDs; @property (nonatomic) unsigned long long cachedChangedSyncIDsVersion; @property (nonatomic) BOOL cachedVersionStale; @property (retain, nonatomic) _SYSharedServiceDB *sharedDB; @property (nonatomic, getter=isPerformingDeltaSync) BOOL performingDeltaSync; @property (readonly, nonatomic) NSString *path; @property (nonatomic) double timeToLive; @property (readonly, nonatomic) unsigned long long changeCount; @property (readonly, nonatomic) NSString *peerID; @property (retain, nonatomic) NSString *vectorClockJSON; @property (copy, nonatomic) NSDate *overflowResyncTime; @property (copy, nonatomic) NSDate *lastMessageReceived; @property (nonatomic) double unfinishedSyncTimeout; @property (readonly, nonatomic) BOOL canStartNewSyncSession; @property (readonly, nonatomic) BOOL currentSyncSendComplete; @property (readonly, nonatomic) BOOL lastSyncFailed; @property (readonly, nonatomic) NSError *lastSyncError; @property (readonly, nonatomic) NSString *currentFullSyncID; @property (readonly, nonatomic) BOOL inFullSync; @property (readonly, nonatomic) NSString *lastSyncEndID; @property (copy, nonatomic) NSString *waitingForSyncEndID; @property (copy, nonatomic) NSDictionary *fullSyncUserInfo; @property (copy, nonatomic) NSDictionary *fullSyncIDSOptions; @property (nonatomic) BOOL completedSync; @property (readonly, nonatomic) double durationOfLastFullSync; @property (readonly, nonatomic) unsigned long long currentLocalVersion; @property (readonly, nonatomic) unsigned long long lastSeenRemoteVersion; + (id)sharedPersistentStoreForService:(id)a0; + (BOOL)_tableEmpty:(id)a0 db:(struct sqlite3 { } *)a1; + (id)_loadOrCreatePeerIDForDB:(struct sqlite3 { } *)a0; - (void)_withDB:(id /* block */)a0; - (id)init; - (void)setPeerID:(id)a0; - (void)dealloc; - (void)enterFullSyncWithID:(id)a0 ignoring:(BOOL)a1; - (BOOL)_openDBAtPath:(id)a0; - (void)_storeSequenceNumberSet:(id)a0 forPeerID:(id)a1; - (unsigned long long)_oldestVersion; - (void)resetSequenceNumber:(unsigned long long)a0; - (BOOL)objectChanged:(id)a0 sinceVersion:(unsigned long long)a1; - (void)addMessageIDsToIgnore:(id)a0; - (BOOL)_LOCKED_storeSequenceNumberSet:(id)a0 forPeerID:(id)a1 db:(struct sqlite3 { } *)a2 error:(id *)a3; - (void)_verifyInTransactionForFullSync; - (void)clearAllChanges; - (BOOL)setLastSequenceNumber:(unsigned long long)a0 fromPeer:(id)a1 error:(id *)a2; - (void)_setupSharedDB; - (id)_sequenceNumberSetForPeerID:(id)a0 inDB:(struct sqlite3 { } *)a1; - (BOOL)logChanges:(id)a0 error:(id *)a1; - (void).cxx_destruct; - (BOOL)ignoringFullSyncWithID:(id)a0; - (void)changeTrackingToggled:(BOOL)a0; - (void)_loadIgnoreList_LOCKED:(struct sqlite3 { } *)a0; - (BOOL)reassignCurrentSyncID:(id)a0; - (void)setLastSequenceNumber:(unsigned long long)a0 fromPeer:(id)a1; - (BOOL)shouldIgnoreMessageID:(id)a0; - (void)_fixPeerInfo; - (void)_convertTimestamps; - (id)_decodeIndexSet:(id)a0; - (unsigned long long)_lastSequenceNumberForPeerID_LOCKED:(id)a0 db:(struct sqlite3 { } *)a1; - (id)dbPath; - (void)removeMessageIDFromIgnoreList:(id)a0; - (BOOL)sequenceNumberIsDuplicate:(unsigned long long)a0 forPeer:(id)a1; - (struct sqlite3 { } *)_dbRef; - (BOOL)_inTransaction:(BOOL)a0 do:(id /* block */)a1; - (id)initWithPath:(id)a0 loggingFacility:(struct __CFString { } *)a1 changeTrackingEnabled:(BOOL)a2; - (void)resetSequenceNumbersForPeer:(id)a0; - (void)_saveIgnoreList_LOCKED:(struct sqlite3 { } *)a0; - (id)lastDBErrorInfo; - (void)_cacheTTL; - (void)_prepareStatements; - (BOOL)logSyncCompletionToRemoteVersion:(unsigned long long)a0; - (int)_getSchemaVersion; - (void)sendCompletedForSyncWithID:(id)a0; - (id)_encodeIndexSet:(id)a0; - (unsigned long long)lastSequenceNumberForPeerID:(id)a0; - (unsigned long long)nextSequenceNumber; - (void)exitFullSyncWithID:(id)a0 error:(id)a1; - (id)initWithSharedDatabase:(id)a0; @end