@class PLLibraryScopeChangeTracker, PLCloudPhotoLibraryUserSwitchHandler, PLCloudBatchUploader, PLCloudBatchDownloader, PLForegroundMonitor, NSMutableArray, NSString, PLLazyObject, PFCoalescer, PLCloudTaskManager, PLCloudPhotoLibraryUploadTracker, CPLConfiguration, NSObject, PLBackgroundJobWorkerCoordinator, PLCloudPersistentHistoryChangeTracker, CPLStatus, PLLibraryServicesManager, PLCloudInMemoryTaskManager, CPLLibraryManager, PLPhotoLibraryPathManager, NSNumber; @protocol OS_dispatch_queue, OS_dispatch_source; @interface PLCloudPhotoLibraryManager : NSObject <PLCloudPersistentHistoryChangeTrackerDelegate, PLCloudPersistentHistoryMigratorContext, PLBackgroundJobWorkerCoordinatorDelegate, CPLResourceProgressDelegate, CPLLibraryManagerDelegate, PLForegroundMonitorDelegate, PLCloudUserSessionHandling> { PLCloudBatchUploader *_uploader; PLCloudBatchDownloader *_downloader; PLCloudPersistentHistoryChangeTracker *_syncChangeTracker; PLLibraryScopeChangeTracker *_rulesChangeTracker; BOOL _wasRebuild; BOOL _hasAttemptedMigration; NSObject<OS_dispatch_queue> *_isolationQueue; PLForegroundMonitor *_foregroundMonitor; unsigned long long _state; BOOL _checkEnableStateOnIdle; BOOL _icplEnabled; BOOL _pushOnIdle; BOOL _pullOnIdle; BOOL _stateChangePending; BOOL _hasSettledInitialBatch; long long _libraryMode; CPLLibraryManager *_unsafe_cplLibrary; CPLStatus *_unsafe_cplStatus; CPLConfiguration *_cplConfiguration; int _pauseRequest; short _pauseReason; PLCloudTaskManager *_taskManager; PLLazyObject *_lazyResourceManager; PLLazyObject *_lazyRecoveryManager; NSObject<OS_dispatch_source> *_unpauseDispatchTimer; NSObject<OS_dispatch_source> *_userUnpauseDispatchTimer; long long _pendingResetSyncType; BOOL _initializedMaster; PFCoalescer *_uploadDownloadCountCoalescer; NSObject<OS_dispatch_queue> *_uploadDownloadCountQueue; unsigned long long _boundForUploadingPhotos; unsigned long long _boundForUploadingVideos; unsigned long long _boundForUploadingOtherItems; NSObject<OS_dispatch_source> *_workInProgressTimer; BOOL _significantWork; PLCloudInMemoryTaskManager *_inMemoryTaskManager; PLCloudPhotoLibraryUploadTracker *_uploadTracker; NSObject<OS_dispatch_queue> *_serialQueue; PLCloudPhotoLibraryUserSwitchHandler *_switchHandler; PLLazyObject *_lazyCacheDeleteSupport; NSMutableArray *_pushAllChangesCompletionHandlers; PLBackgroundJobWorkerCoordinator *_backgroundJobWorkerCoordinator; BOOL _pushingAllChanges; BOOL _didCallBlocksWaitingForLibraryOpen; NSMutableArray *_blocksWaitingForLibraryOpen; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _waitForLibraryOpenLock; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _cplLibraryLock; BOOL _isHandlingStatusChangesNotification; unsigned long long _statusChangesNotificationGeneration; BOOL _unsafe_readyForAnalysis; BOOL _opportunisticTasksWasDisabled; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _numbersOfItemsLock; NSNumber *_numberOfPhotosToPush; NSNumber *_numberOfVideosToPush; NSNumber *_numberOfOtherItemsToPush; NSNumber *_numberOfPhotosDownloaded; NSNumber *_numberOfVideosDownloaded; NSNumber *_numberOfOtherItemsDownloaded; NSObject<OS_dispatch_queue> *_libraryScopeSynchronizationQueue; long long _pendingDeviceLibraryConfiguration; NSMutableArray *_deviceLibraryConfigurationChangeCompletionHandlers; NSString *_scopeIdentifierToUnsharePendingAssetsFrom; BOOL _hasInitialSyncDate; } @property (readonly, nonatomic) PLPhotoLibraryPathManager *pathManager; @property (readonly, weak, nonatomic) PLLibraryServicesManager *libraryServicesManager; @property (copy, nonatomic, setter=_setIdleStateTransitionOneTimeAction:) id /* block */ _idleStateTransitionOneTimeAction; @property (readonly, nonatomic, getter=isCloudPhotoLibraryEnabled) BOOL cloudPhotoLibraryEnabled; @property long long deviceLibraryConfiguration; @property (readonly, nonatomic) unsigned long long totalNumberOfUnpushedMasters; @property (readonly, nonatomic) unsigned long long totalNumberOfUploadedMasters; @property (readonly, nonatomic) unsigned long long totalNumberOfDeferredAssets; @property (readonly, nonatomic) unsigned long long totalSizeOfUnpushedOriginals; @property (readonly, nonatomic) unsigned long long totalUploadedOriginalSize; @property (readonly, nonatomic) long long currentResetSyncType; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (BOOL)needResetSyncErrorType:(id)a0; + (id)descriptionForResourceType:(unsigned long long)a0; - (id)initWithLibraryServicesManager:(id)a0; - (BOOL)isReadyForAnalysis; - (void)reportMiscInformation:(id)a0; - (void)_checkForWorkInProgress; - (void)_openCPLLibrary; - (void)invalidateRecoveryManager; - (void)sync; - (id)_fetchEventsFromCloudChangeTrackerInLibrary:(id)a0; - (void)_runSyncOnIsolationQueueWithBlock:(id /* block */)a0; - (void)libraryManager:(id)a0 uploadDidFinishForResourceTransferTask:(id)a1 withError:(id)a2; - (void)sharedLibraryRampCheckWithCompletionHandler:(id /* block */)a0; - (void)setCPLLibrary:(id)a0; - (BOOL)overrideSystemBudgetsForSyncSession:(BOOL)a0 pauseReason:(id)a1 forSystemBudgets:(unsigned long long)a2; - (void)_initResourceManager; - (void)setMigratedLocalVersion:(id)a0; - (id)cplLibrary; - (void)markPurgeableResourcesMatchingPredicate:(id)a0 urgency:(long long)a1 inLibrary:(id)a2 completionHandler:(id /* block */)a3; - (void)downloadResource:(id)a0 options:(id)a1 clientBundleID:(id)a2 proposedTaskIdentifier:(id)a3 taskDidBeginHandler:(id /* block */)a4 progressBlock:(id /* block */)a5 completionHandler:(id /* block */)a6; - (void)getCurrentTransferProgressWithBlock:(id /* block */)a0; - (id)resourceManager; - (void)fetchAdjustmentDataForAsset:(id)a0 completionHandler:(id /* block */)a1; - (void)dealloc; - (void)saveRulesTrackerTokenObject:(id)a0; - (void)_promptForCameraCaptureSettingChangeWithReason:(int)a0; - (void)_checkAndMarkPurgeableResourcesIfSafe:(id)a0 checkServerIfNecessary:(BOOL)a1 urgency:(long long)a2 completionHandler:(id /* block */)a3; - (void)requestDeviceLibraryConfigurationChange:(long long)a0 completionHandler:(id /* block */)a1; - (unsigned long long)_inq_numberOfOtherItemsToDownloadInLibrary:(id)a0; - (unsigned long long)_inq_numberOfVideosToDownloadInLibrary:(id)a0; - (void)sendBudgetOverrideAnalytics:(BOOL)a0 pauseReason:(id)a1; - (void)invalidateCacheDeleteSupport; - (void)setPause:(BOOL)a0 reason:(short)a1; - (void)acceptCPLShare:(id)a0 completionHandler:(id /* block */)a1; - (void)_createDeletionRecordsIfNecessary; - (void)_processUploadBatchWithStartupFailureCount:(unsigned long long)a0 inLibrary:(id)a1; - (void)cplConfigurationWithCompletionHandler:(id /* block */)a0; - (void)statusDidChange:(id)a0; - (void)forceSyncMomentSharesWithScopeIdentifiers:(id)a0; - (void)_unshareBatchOfPendingAssetsSharedToScopeWithTransaction:(id)a0; - (void)_finishedUnsharingPendingAssetsSharedToScopeWithTransaction:(id)a0 error:(id)a1; - (void)foregroundMonitor:(id)a0 changedStateToForeground:(BOOL)a1 forBundleIdentifier:(id)a2; - (void)_processUploadBatchInLibrary:(id)a0; - (void)_updateWithCPLResource:(id)a0 isHighPriority:(BOOL)a1 inLibrary:(id)a2 completionHandler:(id /* block */)a3; - (void)_processRulesEvaluationIfNeeded; - (BOOL)isResourceTransferTaskAliveWithTaskWithIdentifier:(id)a0; - (void)libraryManager:(id)a0 backgroundDownloadDidFinishForResource:(id)a1; - (void)libraryManager:(id)a0 provideLocalResource:(id)a1 recordClass:(Class)a2 completionHandler:(id /* block */)a3; - (void)boostPriorityForMomentShareWithScopeIdentifier:(id)a0 completionHandler:(id /* block */)a1; - (void)_doPause; - (void)_updatePendingResetSyncDate; - (id)cplConfiguration; - (void)_repushMasterWithMissingMediaMetadata; - (short)_placeHolderKindFromCPLResourceType:(unsigned long long)a0; - (void)libraryManagerStatusDidChange:(id)a0; - (void)getStreamingURLForAsset:(id)a0 resourceType:(unsigned long long)a1 intent:(unsigned long long)a2 hints:(id)a3 timeRange:(struct { struct { long long x0; int x1; unsigned int x2; long long x3; } x0; struct { long long x0; int x1; unsigned int x2; long long x3; } x1; })a4 clientBundleID:(id)a5 completionHandler:(id /* block */)a6; - (void)deactivateScopeWithIdentifier:(id)a0 completionHandler:(id /* block */)a1; - (void)stopLibraryScopeRulesChangeTracker; - (void)libraryManager:(id)a0 pushAllChangesWithCompletionHandler:(id /* block */)a1; - (void)libraryManager:(id)a0 inMemoryDownloadDidFinishForResourceTransferTask:(id)a1 data:(id)a2 withError:(id)a3; - (void)updateTransferCountsWithInsertedPhotoCount:(unsigned long long)a0 insertedVideoCount:(unsigned long long)a1 inLibrary:(id)a2; - (void)_initCacheDeleteSupport; - (void)invalidate; - (void)_fetchNewEventsFromCloudChangeTrackerInLibrary:(id)a0; - (void)_runAsyncOnIsolationQueueWithTransaction:(id)a0 afterDelay:(double)a1 block:(id /* block */)a2; - (void)_handleFinalizeSessionError:(id)a0 commitError:(id)a1 uploadBatchContainer:(id)a2 needResetSync:(BOOL)a3 forTransaction:(id)a4 inLibrary:(id)a5; - (void)_setReadyForAnalysisWithCPLStatus:(id)a0; - (void)getLibraryScopeStatusCountsForScopeWithIdentifier:(id)a0 completionHandler:(id /* block */)a1; - (void)libraryManager:(id)a0 downloadDidFinishForResourceTransferTask:(id)a1 finalResource:(id)a2 withError:(id)a3; - (void)disableiCPLWithCompletionHandler:(id /* block */)a0; - (void)_runOnLibraryOpenWithTransaction:(id)a0 block:(id /* block */)a1; - (id)_calculateUnpauseTimeForPauseTime:(id)a0; - (void)enableiCPLWithCompletionHandler:(id /* block */)a0; - (void)_updateLocalStaleResourceWithCPLResource:(id)a0 inLibrary:(id)a1; - (id)recoveryManager; - (BOOL)_isAssetsdNotReadyToAnswer; - (void)_updateTransferCountsInLibrary:(id)a0; - (void)clearPrefetchState; - (void)_initializeMasterAndSizeCalculationinLibrary:(id)a0; - (void)queryUserIdentitiesWithParticipants:(id)a0 completionHandler:(id /* block */)a1; - (void)saveCloudTrackerTokenObject:(id)a0; - (void)_resetCPLLibrary; - (void)_migrateFromChangeHubToCoreDataIfNecessary; - (void)_notifyComputeCacheManagerWithCPLStatus:(id)a0 andCPLConfiguration:(id)a1; - (void)_handleStateTransistionAfterDisableiCPL; - (void)invalidateUploadDownloadCountCoalescer; - (void)libraryManagerHasStatusChanges:(id)a0; - (BOOL)connectToCloudChangeTracker; - (void)_disableiCPLWillBecomeNonSystemPhotoLibrary:(BOOL)a0 configurationChanged:(BOOL)a1; - (void)_uploadToCloudForEventsResult:(id)a0 inLibrary:(id)a1; - (void)_resetCacheDeleteSupport; - (void)fetchResourcesForAsset:(id)a0 completionHandler:(id /* block */)a1; - (id)readMigrationMarker; - (id)cplStatus; - (void)getSystemBudgetsWithCompletionHandler:(id /* block */)a0; - (BOOL)_hasIncomingWorkFileMarker; - (void)_disableOpportunisticTasks; - (BOOL)_hasAvalancheIncomingWork; - (BOOL)isConnectedToCloudChangeTracker; - (void)_initCPLLibraryMode; - (id)readLocalVersion; - (void)_downloadFromCloudInLibrary:(id)a0; - (void)libraryManager:(id)a0 uploadDidProgress:(float)a1 forResourceTransferTask:(id)a2; - (void)invalidateResourceManager; - (void)_stopUnpauseTimer; - (void)startUnsharingPendingAssetsSharedToScopeWithIdentifier:(id)a0; - (void)deleteResources:(id)a0 checkServerIfNecessary:(BOOL)a1 completionHandler:(id /* block */)a2; - (void)_getStatusForPendingRecordsSharedToScopeWithIdentifier:(id)a0 maximumCount:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (BOOL)_hasItemToDownload; - (void)_repushVideoAssetsMetadata; - (BOOL)_setupTimerForUnpause; - (id)cacheDeleteSupport; - (void)_getStatusChanges:(id)a0 transaction:(id)a1 notificationGeneration:(unsigned long long)a2 inLibrary:(id)a3; - (void)startExitFromLibraryScopeWithIdentifier:(id)a0 retentionPolicy:(long long)a1 exitSource:(long long)a2 completionHandler:(id /* block */)a3; - (id)_assetResourceForAsset:(id)a0 resourceType:(unsigned long long)a1 masterResourceOnly:(BOOL)a2 isPhoto:(BOOL *)a3; - (unsigned long long)_inq_numberOfOtherItemsToUploadInLibrary:(id)a0; - (void)_startLibraryScopeRulesChangeTrackerInQueue; - (void)endsSignificantWork; - (void)downloadResourceInMemory:(id)a0 proposedTaskIdentifier:(id)a1 taskDidBeginHandler:(id /* block */)a2 completionHandler:(id /* block */)a3; - (void)_enableiCPL; - (void)_doResetSync:(long long)a0 inLibrary:(id)a1; - (void)setMigrationMarker:(id)a0; - (void)sizeOfResourcesToUploadDidChangeForLibraryManager:(id)a0; - (void)_checkForPushedMastersInLibrary:(id)a0; - (void)libraryManagerDidChangeConfiguration:(id)a0; - (void)_handleOptimizeSettingChangeInLibrary:(id)a0 withCompletionHandler:(id /* block */)a1; - (void)_resetDidCallBlocksWaitingForLibraryOpen; - (void)downloadResourceInMemoryForAsset:(id)a0 resourceType:(unsigned long long)a1 masterResourceOnly:(BOOL)a2 proposedTaskIdentifier:(id)a3 taskDidBeginHandler:(id /* block */)a4 completionHandler:(id /* block */)a5; - (void)_updateAsset:(id)a0 withImageFileURL:(id)a1; - (void)_initDeviceLibraryConfiguration; - (void)_resetResourceManager; - (void)_uploadFullPhotoLibraryToCloud:(id)a0; - (id)_identifierForResource:(id)a0; - (void)libraryManager:(id)a0 downloadDidStartForResourceTransferTask:(id)a1; - (void)_transitionToState:(unsigned long long)a0; - (void).cxx_destruct; - (void)_unpause; - (id)_debugNameForState:(unsigned long long)a0; - (void)_updateThumbnailDataForAsset:(id)a0 withImageFileURL:(id)a1; - (void)_finishUploadWithNoBatchesToUploadInLibrary:(id)a0; - (void)configurationDidChange:(id)a0; - (void)_handleAccountFlagsChangeIfNecessary; - (void)_processNextTransaction; - (void)_setupPLCPLPlistInLibrary:(id)a0; - (void)_callDeviceLibraryConfigurationChangeRequestCompletionHandlersWithError:(id)a0; - (unsigned long long)_inq_numberOfPhotosToDownloadInLibrary:(id)a0; - (id)lastKnownCloudVersionFromDisk; - (void)libraryManager:(id)a0 downloadDidProgress:(float)a1 forResourceTransferTask:(id)a2; - (void)setLocalVersion:(id)a0; - (void)photosPreferencesChanged; - (void)fetchShareFromShareURL:(id)a0 completionHandler:(id /* block */)a1; - (void)_startWorkInProgressTimer; - (void)_handleOptimizeSettingChange; - (void)updateLibraryScopeWithCPLScopeChange:(id)a0 completionHandler:(id /* block */)a1; - (void)cloudChangeTrackerDidReceiveChangesWithTransaction:(id)a0; - (void)libraryManager:(id)a0 backgroundDownloadDidFailForResource:(id)a1; - (void)startAutomaticPrefetchOrPrune; - (void)setCPLStatus:(id)a0; - (void)_enableOpportunisticTasks; - (id)readCloudTrackerTokenObject; - (void)_callBlocksWaitingForLibraryOpen; - (void)downloadAsset:(id)a0 resourceType:(unsigned long long)a1 masterResourceOnly:(BOOL)a2 highPriority:(BOOL)a3 clientBundleID:(id)a4 proposedTaskIdentifier:(id)a5 taskDidBeginHandler:(id /* block */)a6 progressBlock:(id /* block */)a7 completionHandler:(id /* block */)a8; - (void)startAssetRecoveryWithTransaction:(id)a0; - (unsigned long long)_inq_numberOfPhotosToUploadInLibrary:(id)a0; - (void)_markResourceObjectIDsAsPurgeable:(id)a0 urgency:(long long)a1 inLibrary:(id)a2; - (void)getCloudScopedIdentifiersForLocalIdentifiers:(id)a0 completionHandler:(id /* block */)a1; - (void)cplHasBackgroundDownloadOperationsWithCompletionHandler:(id /* block */)a0; - (void)beginsSignificantWorkWithResourcesSize:(unsigned long long)a0; - (void)publishLibraryScopeWithCPLShare:(id)a0 title:(id)a1 completionHandler:(id /* block */)a2; - (id)readRulesTrackerTokenObject; - (void)_setToDownloadCountsForImages:(unsigned long long)a0 videos:(unsigned long long)a1; - (void)_runOneTimeMigrationStepsWithoutiCPLIfNecessary; - (BOOL)_canExternallyTransitionToNewLibraryStateIgnoringPause:(BOOL)a0; - (void)_pause; - (void)removeParticipantsWithParticipantUUIDs:(id)a0 fromLibraryScopeWithIdentifier:(id)a1 retentionPolicy:(long long)a2 exitSource:(long long)a3 completionHandler:(id /* block */)a4; - (void)libraryManager:(id)a0 uploadDidStartForResourceTransferTask:(id)a1; - (void)_callPushAllChangesCompletionHandlersIfNecessary; - (id)_convertToIdentifierMapFromCPLScopeIdentifierMap:(id)a0; - (void)_checkIfSharedLibraryDedupeIsDisabled; - (void)workerCoordinatorDidFinishAllSubmittedJobsOnBundle:(id)a0; - (void)_constructUnpauseTimerFrom:(id)a0 to:(id)a1; - (void)publishCPLScopeChange:(id)a0 completionHandler:(id /* block */)a1; - (void)downloadResource:(id)a0 highPriority:(BOOL)a1 clientBundleID:(id)a2 proposedTaskIdentifier:(id)a3 taskDidBeginHandler:(id /* block */)a4 progressBlock:(id /* block */)a5 completionHandler:(id /* block */)a6; - (void)clearPurgeableResourcesMatchingPredicate:(id)a0 inLibrary:(id)a1 completionHandler:(id /* block */)a2; - (void)setCPLConfiguration:(id)a0; - (struct CGSize { double x0; double x1; })_targetSizeForInputSize:(struct CGSize { double x0; double x1; })a0 maxPixelSize:(unsigned long long)a1; - (void)resolveLocalIdentifiersForCloudIdentifiers:(id)a0 completionHandler:(id /* block */)a1; - (void)_runAsyncOnIsolationQueueWithTransaction:(id)a0 block:(id /* block */)a1; - (long long)sizeOfResourcesToUploadByCPL:(id *)a0; - (void)libraryManagerHasChangesToPull:(id)a0; - (void)libraryManagerDidStartSynchronization:(id)a0; - (void)getCPLStateForDebug:(BOOL)a0 completionHandler:(id /* block */)a1; - (unsigned long long)_inq_numberOfVideosToUploadInLibrary:(id)a0; - (void)_checkEnableState; - (void)_processDownloadBatchWithSession:(id)a0 inLibrary:(id)a1; - (void)_linkFileFrom:(id)a0 to:(id)a1; - (void)_stopWorkInProgressTimer; - (void)_doUnpause; - (void)_repushAssetsWithImportedByBundleIdentifier; - (void)saveLastKnownCloudChangeTrackerTokenToDisk; - (void)performTransactionOnLibraryScopeSynchronizationQueue:(id /* block */)a0; - (void)resetSyncDueToMigrationMarker; - (void)startLibraryScopeRulesChangeTracker; - (id)_inMemoryTrackerStateForDebug; - (BOOL)_isPausedForDownloadRequestHighPriority:(BOOL)a0; - (void)_initRecoveryManager; - (void)_fixMasterStatusIn:(id)a0 inLibrary:(id)a1; - (void)activateScopeWithIdentifier:(id)a0 completionHandler:(id /* block */)a1; - (void)_reportOptimizeSettingChangeWithCompletionHandler:(id /* block */)a0; - (void)refreshLibraryScopeWithIdentifier:(id)a0 completionHandler:(id /* block */)a1; - (void)endUserSessionWithCompletionHandler:(id /* block */)a0; - (void)cancelResourceTransferTaskWithIdentifier:(id)a0 completion:(id /* block */)a1; - (void)_runOneTimeMigrationStepsIfNecessaryInLibrary:(id)a0; - (void)disableiCPLSyncWillBecomeNonSystemPhotoLibrary; @end