@class NSMutableDictionary, CPLEngineScope, CPLScopeChange, NSMutableSet, NSObject, NSMutableArray, CPLEngineTransport, CPLFeatureVersionHistory, CPLTransportScopeMapping, NSArray, NSData, CPLEngineTransientRepository, NSError, CPLEngineCloudCache; @protocol CPLEngineTransportFetchRecordsTask, CPLEngineTransportGetCurrentSyncAnchorTask, CPLEngineTransportDownloadBatchTask, CPLEngineTransportGroup, OS_dispatch_queue, CPLEngineTransportQueryTask; @interface CPLPullFromTransportScopeTask : CPLEngineScopedTask { NSObject<OS_dispatch_queue> *_queue; NSError *_endTaskError; CPLTransportScopeMapping *_transportScopeMapping; CPLEngineScope *_sharedScope; CPLEngineScope *_primaryScope; NSMutableArray *_partnerScopes; NSMutableDictionary *_syncAnchorsOfPartnerScopesThatMightNeedToPullChanges; NSMutableArray *_allPartnerScopeIdentifiersNeedingToPullChanges; NSArray *_finalListOfPartnerScopesNeedingToPullChanges; CPLEngineCloudCache *_cloudCache; CPLEngineTransientRepository *_transientPullRepository; CPLEngineTransport *_transport; id<CPLEngineTransportDownloadBatchTask> _downloadTask; id<CPLEngineTransportQueryTask> _queryTask; CPLScopeChange *_currentScopeChange; Class _currentQueryClass; BOOL _ignoreNewBatches; BOOL _useCourtesyMingling; unsigned long long _rewindFeatureVersion; NSData *_rewindSyncAnchor; CPLFeatureVersionHistory *_versionHistory; id<CPLEngineTransportGroup> _transportGroup; NSMutableSet *_otherRewindSyncAnchors; unsigned long long _totalAssetCountForScope; BOOL _hasCachedTotalAssetCountForScope; long long _taskItem; BOOL _hasFetchedInitialSyncAnchor; BOOL _shouldStoreInitialSyncAnchor; NSData *_initialSyncAnchor; CPLScopeChange *_initialScopeChange; id<CPLEngineTransportGetCurrentSyncAnchorTask> _fetchInitialSyncAnchorTask; NSObject<OS_dispatch_queue> *_notifyQueue; BOOL _didNotifySchedulerPullQueueIsFullOnce; BOOL _needsToNotifySchedulerPullQueueIsFull; NSData *_updateTransportScope; CPLEngineScope *_stagingScope; NSData *_stagingTransportScope; BOOL _hasExtraRecordsToCheck; id<CPLEngineTransportFetchRecordsTask> _checkRecordsTask; unsigned long long _countOfPulledAssets; id /* block */ _allowsMinglingChangeWithScopedIdentifier; } - (id)taskIdentifier; - (void)launch; - (void).cxx_destruct; - (void)cancel; - (void)_launch; - (void)_cancelAllTasks; - (void)_notifySchedulerPullQueueIsFull; - (void)_updateLastFeatureVersionAndRelaunchFetchChangesFromSyncAnchor:(id)a0; - (BOOL)checkScopeIsValidInTransaction:(id)a0; - (void)_addPartnerScope:(id)a0 scopes:(id)a1; - (void)_checkExtraRecords; - (void)_checkExtraRecordsWithScopedIdentifiers:(id)a0; - (void)_checkServerFeatureVersionWithCompletionHandler:(id /* block */)a0; - (id)_cloudCacheInStore:(id)a0; - (BOOL)_dequeueFromPendingRecordChecksIfNecessary:(id)a0 error:(id *)a1; - (void)_extractAndMingleAssetsIfPossibleFromBatch:(id)a0 inTransaction:(id)a1; - (void)_extractAndMinglePersonsIfPossibleFromBatch:(id)a0 inTransaction:(id)a1; - (void)_fetchInitialSyncAnchor; - (BOOL)_fetchRewindSyncAnchorsInScopes:(id)a0 startSyncAnchor:(id)a1 error:(id *)a2; - (void)_handleNewBatchFromChanges:(id)a0 newSyncAnchor:(id)a1 inTransaction:(id)a2; - (void)_handleNewBatchFromChanges:(id)a0 updatedFlags:(id)a1 newSyncAnchor:(id)a2 partnerScopesNeedingToPullChanges:(id)a3; - (void)_handleNewBatchFromQuery:(id)a0 newCursor:(id)a1 inTransaction:(id)a2; - (void)_handleNewBatchFromQuery:(id)a0 queryClass:(Class)a1 newCursor:(id)a2; - (void)_launchFetchChangesFromSyncAnchor:(id)a0; - (void)_launchNextQueryTask; - (void)_launchPullTasksAndDisableQueries:(BOOL)a0; - (void)_launchQueryForClass:(Class)a0 cursor:(id)a1; - (void)_notePartnerScopesNeedingToPullChanges:(id)a0 scopes:(id)a1 inTransaction:(id)a2; - (void)_notifySchedulerPullQueueIsFullNowIfNecessary; - (void)_reallyNotifySchedulerPullQueueIsFull; - (void)_relaunchFetchChangesFromOtherRewindSyncAnchors; - (void)_storeInitialSyncAnchorIfNecessaryInTransaction:(id)a0; - (BOOL)_storeRewindSyncAnchors:(id)a0 inScopes:(id)a1 error:(id *)a2; - (unsigned long long)_totalAssetCountForScope; - (id)_transientPullRepositoryInStore:(id)a0; - (id)initWithEngineLibrary:(id)a0 session:(id)a1 clientCacheIdentifier:(id)a2 scope:(id)a3 transportScope:(id)a4; - (id)scopesForTask; - (void)taskDidFinishWithError:(id)a0; - (id)transportScope; @end