@class PLGlobalValues, NSPersistentStore, PLGenericAlbum, NSObject, PLPhotoLibraryPathManager, NSMutableArray, PAVideoConversionServiceClient, PLThumbnailManager, NSString, NSSet, PLKeywordManager, PLManagedObjectContext, PLThumbnailIndexes, NSArray, PAImageConversionServiceClient, PLLibraryServicesManager, PLPhotoLibraryOptions, PLPhotoLibraryBundle; @protocol PLAlbumProtocol; @interface PLPhotoLibrary : NSObject { NSMutableArray *_transactionCompletionHandlers; PLGenericAlbum *_allImportedPhotosAlbum; PLGenericAlbum *_lastImportedPhotosAlbum; NSSet *_imageFileExtensions; NSSet *_rawImageFileExtensions; NSSet *_audioFileExtensions; NSSet *_extraVideoExtensions; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _managedObjectContextLock; PLManagedObjectContext *_managedObjectContext; NSPersistentStore *_loadedPersistentStore; PAImageConversionServiceClient *_imageConversionServiceClient; PAVideoConversionServiceClient *_videoConversionServiceClient; } @property (nonatomic) unsigned long long pendingTransactions; @property (readonly) BOOL isUnitTesting; @property (readonly) PLPhotoLibraryBundle *libraryBundle; @property (readonly) PLKeywordManager *keywordManager; @property (readonly, retain, nonatomic) NSArray *syncedAlbums; @property (readonly, retain, nonatomic) NSObject<PLAlbumProtocol> *syncProgressAlbum; @property (readonly, retain, nonatomic) NSObject<PLAlbumProtocol> *otaRestoreProgressAlbum; @property (readonly, retain, nonatomic) NSObject<PLAlbumProtocol> *filesystemImportProgressAlbum; @property (readonly, nonatomic) PLPhotoLibraryOptions *options; @property (readonly, nonatomic) PLManagedObjectContext *managedObjectContext; @property (readonly, nonatomic) PLPhotoLibraryPathManager *pathManager; @property (readonly, weak, nonatomic) PLLibraryServicesManager *libraryServicesManager; @property (readonly, copy, nonatomic) NSString *name; @property (readonly, getter=isCloudPhotoLibraryEnabled) BOOL cloudPhotoLibraryEnabled; @property (readonly, nonatomic) PAImageConversionServiceClient *imageConversionServiceClient; @property (readonly, nonatomic) PAVideoConversionServiceClient *videoConversionServiceClient; @property (readonly, nonatomic) PLThumbnailManager *thumbnailManager; @property (readonly, nonatomic) PLThumbnailIndexes *thumbnailIndexes; @property (readonly, copy, nonatomic) NSArray *photoStreamAlbums; @property (readonly, copy, nonatomic) NSArray *photoStreamAlbumsForPreferences; @property (readonly, nonatomic) PLGlobalValues *globalValues; + (void)_registerStateHandler; + (void)_contextSaveFailedDueToClientRequestedShutdown:(id)a0; + (id)queueStatusDescription; + (id)myPhotoStreamPhotoLibrary; + (void)_loadFileExtensionInformation; + (id)assetsLibraryPhotoLibrary; + (BOOL)shouldTryFastPathWithLibraryBundle:(id)a0; + (void)_contextSaveFailedWithNSValidationNumberTooSmallError:(id)a0; + (void)configureEnumeratorForLibrarySizeInfo:(id)a0 completion:(id /* block */)a1; + (id)_stateDictionary; + (BOOL)removeFaceMetadataAtURL:(id)a0 includingPeople:(BOOL)a1; + (id)librarySummarySizeDataRefWithManagedObjectContext:(id)a0; + (id)savedPhotosReferenceMediaSizeWithSizeDataRef:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_DONE_101_withCode:(int)a0; + (void)_contextSaveFailedWithNSValidationRelationshipLacksMinimumCountError:(id)a0; + (BOOL)isAudioFileExtension:(id)a0; + (id)cloudSharingPhotoLibrary; + (BOOL)isAdjustmentEnvelopeExtension:(id)a0; + (void)reportLibraryDidDealloc:(id)a0; + (void)_contextSaveFailedWithNSValidationInvalidURIError:(id)a0; + (void)_assetsLibrary_disableSharedPhotoStreamsSupport; + (void)initialize; + (id)newPhotoLibraryWithName:(const char *)a0 loadedFromBundle:(id)a1 options:(id)a2 error:(id *)a3; + (void)_abortFromMocExecFail_NSMOC_SQLITE_EMPTY_16_withCode:(int)a0; + (void)refreshCachedCountsAndDates:(BOOL)a0 onAssetsContainerClass:(Class)a1 inContext:(id)a2 withPredicate:(id)a3; + (void)_abortFromMocExecFail_NSMOC_SQLITE_ABORT_4_withCode:(int)a0; + (void)_getResourceData:(id)a0 nonDerivativeSizeOut:(_Atomic unsigned long long *)a1 derivativesSizeOut:(_Atomic unsigned long long *)a2 fileBackedThumbnailsSizeOut:(_Atomic unsigned long long *)a3 tableThumbnailsSizeOut:(_Atomic unsigned long long *)a4; + (void)_abortFromMocExecFail_NSMOC_SQLITE_RANGE_25_withCode:(int)a0; + (void)_contextSaveFailedWithTimeoutError:(id)a0; + (void)_contextSaveFailedWithNSValidationInvalidDateError:(id)a0; + (id)systemMainQueuePhotoLibrary; + (id)cmmPhotoLibrary; + (void)contextExecuteFailedWithSQLiteResultCode:(int)a0; + (void)_contextSaveFailedWithNSValidationDateTooLateError:(id)a0; + (void)_contextSaveFailedWithNSValidationNumberTooLargeError:(id)a0; + (id)savedPhotosOriginalsSizeWithSizeDataRef:(id)a0; + (id)opportunisticTaskIsolationQueue; + (void)_abortFromMocExecFail_NSMOC_SQLITE_FORMAT_24_withCode:(int)a0; + (void)setPhotoStreamEnabled:(BOOL)a0; + (id)unitTestPhotoLibrary; + (void)_contextSaveFailedWithNSValidationStringTooShortError:(id)a0; + (BOOL)isVideoFileExtension:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_PROTOCOL_15_withCode:(int)a0; + (id)diagnosticsPhotoLibrary; + (unsigned long long)CloudPhotoLibrarySize; + (id)_resourcesInfoFromMoc:(id)a0; + (void)_contextSaveFailedWithNSManagedObjectValidationError:(id)a0; + (void)_contextSaveFailedWithOtherCocoaError:(id)a0; + (id)masterURLFromSidecarURLs:(id)a0; + (void)_contextSaveFailedWithNSPersistentStoreTimeoutError:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_CANTOPEN_14_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_ERROR_1_SQLITE_ERROR_SNAPSHOT_769_withCode:(int)a0; + (void)_contextSaveFailedWithNSPersistentStoreSaveError:(id)a0; + (void)_contextSaveFailedDueToChangingSPL:(id)a0; + (id)fileReservationForFileAtPath:(id)a0 exclusive:(BOOL)a1; + (BOOL)canSaveVideoToLibrary:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_CONSTRAINT_19_withCode:(int)a0; + (void)_contextSaveFailedWithNSValidationStringPatternMatchingError:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_IOERR_10_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_NOTICE_27_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_INTERNAL_2_withCode:(int)a0; + (id)sharedPhotoLibrary; + (void)_abortFromMocExecFail_NSMOC_SQLITE_NOTFOUND_12_withCode:(int)a0; + (id)_debugStatisticsDescription; + (void)_abortFromMocExecFail_NSMOC_SQLITE_FULL_13_withCode:(int)a0; + (void)_contextSaveFailedWithNoPersistentStores:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_NOTADB_26_withCode:(int)a0; + (BOOL)isImageFileExtension:(id)a0; + (void)_contextSaveFailedWithNSValidationDateTooSoonError:(id)a0; + (void)_contextSaveFailedWithNSValidationMissingMandatoryPropertyError:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_NOLFS_22_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_READONLY_8_withCode:(int)a0; + (void)postGlobalPhotoLibraryAvailableIfNecessary; + (void)_abortFromMocExecFail_NSMOC_SQLITE_ERROR_1_withCode:(int)a0; + (void)reportLibraryDidInit:(id)a0; + (void)setCloudAlbumSharingEnabled:(BOOL)a0; + (void)_contextSaveFailedWithNSValidationRelationshipExceedsMaximumCountError:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_PERM_3_withCode:(int)a0; + (void)_contextSaveFailedWithNSManagedObjectContextRecursiveSaveError:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_INTERRUPT_9_withCode:(int)a0; + (BOOL)isNonRawImageFileExtension:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_MISMATCH_20_withCode:(int)a0; + (id)photoOutboundSharingTmpDirectoryURL; + (void)_abortFromMocExecFail_NSMOC_SQLITE_LOCKED_6_withCode:(int)a0; + (id)requestIdentifierFromDeferredIdentifier:(id)a0; + (void)_contextSaveFailedWithNSValidationMultipleErrorsError:(id)a0; + (id)cameraPhotoLibrary; + (struct os_state_data_s { unsigned int x0; union { unsigned int x0 : 32; unsigned int x1; } x1; struct os_state_data_decoder_s { char x0[64]; char x1[64]; } x2; char x3[64]; unsigned char x4[0]; } *)_stateDataWithHints:(struct os_state_hints_s { unsigned int x0; char *x1; unsigned int x2; unsigned int x3; } *)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_CORRUPT_11_withCode:(int)a0; + (void)_context:(id)a0 saveFailedWithError:(id)a1; + (id)cplPhotoLibrary; + (void)_contextSaveFailedWithCocoaError:(id)a0 message:(id)a1; + (void)_contextSaveFailedWithNSManagedObjectConstraintValidationError:(id)a0; + (void)_contextSaveFailedWithNSValidationRelationshipDeniedDeleteError:(id)a0; + (BOOL)systemPhotoLibraryIsObtainable; + (int)priorityForFileExtension:(id)a0; + (BOOL)areOpportunisticTasksDisabled; + (void)_abortFromMocExecFail_NSMOC_SQLITE_AUTH_23_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_ROW_100_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_NOMEM_7_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_MISUSE_21_withCode:(int)a0; + (void)_activateStatusTimer; + (BOOL)isRawImageFileExtension:(id)a0; + (id)newPhotoLibraryWithName:(const char *)a0 loadedFromURL:(id)a1 options:(id)a2 error:(id *)a3; + (void)_contextSaveFailedWithNSValidationStringTooLongError:(id)a0; + (id)_internalSystemPhotoLibrary; + (void)_abortFromMocExecFail_NSMOC_SQLITE_OTHER_withCode:(int)a0; + (void)_withDispatchGroup:(id)a0 onContext:(id)a1 synchronously:(BOOL)a2 shouldSave:(BOOL)a3 refreshAfterSave:(BOOL)a4 performTransaction:(id /* block */)a5 completionHandler:(id /* block */)a6; + (void)_contextSaveFailedWithError:(id)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_BUSY_5_withCode:(int)a0; + (void)_abortFromMocExecFail_NSMOC_SQLITE_TOOBIG_18_withCode:(int)a0; + (id)systemPhotoLibrary; + (void)_abortFromMocExecFail_NSMOC_SQLITE_WARNING_28_withCode:(int)a0; + (void)refreshCachedCountsOnAllAssetContainersInContext:(id)a0; + (BOOL)_assetsLibrary_isSharedPhotoStreamsSupportEnabled; + (void)_abortFromMocExecFail_NSMOC_SQLITE_SCHEMA_17_withCode:(int)a0; - (id)libraryID; - (void)_pauseSearchIndexing; - (void)performTransaction:(id /* block */)a0; - (void)cleanupAfterImportAllDCIMAssets; - (void)_safeSave:(id)a0; - (void)_userApplyTrashedState:(short)a0 toAlbums:(id)a1; - (id)photoAnalysisClient; - (id)incompleteRestoreProcesses; - (id)lastImportedPhotosAlbum; - (id)init; - (void)performTransactionAndWait:(id /* block */)a0; - (void)countOfReferencedMediaWithCompletionHandler:(id /* block */)a0; - (void)userExpungeAssets:(id)a0 localOnlyDelete:(BOOL)a1 expungeReasonFromClient:(id)a2; - (id)addDCIMEntryAtFileURL:(id)a0 mainFileMetadata:(id)a1 toEvent:(id)a2 progress:(id)a3 previewImage:(id)a4 thumbnailImage:(id)a5 savedAssetType:(short)a6 replacementUUID:(id)a7 publicGlobalUUID:(id)a8 extendedInfo:(id)a9 withUUID:(id)a10 isPlaceholder:(BOOL)a11 placeholderFileURL:(id)a12; - (void)dealloc; - (void)userTrashAssets:(id)a0 withTrashedReason:(unsigned short)a1; - (id)syncedAlbumSubtitleStringFormat; - (id)assetsdClient; - (id)albumListForAlbumOfKind:(int)a0; - (id)_loadServerDatabaseContextWithOptions:(id)a0 error:(id *)a1; - (void)updateMemoryPlayShareViewCountsInContext:(id)a0; - (id)assetWithUUID:(id)a0; - (BOOL)getPhotoCount:(unsigned long long *)a0 videoCount:(unsigned long long *)a1 excludeTrashed:(BOOL)a2 excludeInvisible:(BOOL)a3 excludeCloudShared:(BOOL)a4; - (id)allImportedPhotosAlbum; - (BOOL)unloadDatabase:(id *)a0; - (void)deleteExpiredTrashedAssetsAndAlbums; - (void)updateAssetPlayShareViewCountsInContext:(id)a0; - (void)_pauseDupeAnalysis; - (id)personInfoManager; - (void)handlePersistentStoreRemoval:(id)a0; - (void)_userDeleteAlbums:(id)a0; - (void)performBlockAndWait:(id /* block */)a0; - (void)userUntrashAssets:(id)a0; - (void)addCompletionHandlerToCurrentTransaction:(id /* block */)a0; - (void)performTransaction:(id /* block */)a0 completionHandler:(id /* block */)a1 withPriority:(long long)a2; - (void)_photoLibraryCorruptNotification; - (void)_resumeSearchIndexing; - (unsigned long long)numberOfUnpushedAssetsOfKind:(short)a0; - (void)deleteUnusedCameraMetadataPaths; - (void)performBlock:(id /* block */)a0 completionHandler:(id /* block */)a1 withPriority:(long long)a2; - (id)newImageForPhoto:(id)a0 format:(unsigned short)a1 allowPlaceholder:(BOOL)a2 outImageProperties:(const struct __CFDictionary **)a3 outDeliveredPlaceholder:(BOOL *)a4; - (id)shortLivedLibraryCopyByAppendingName:(const char *)a0; - (void)deleteITunesSyncedContentForEnablingiCPL; - (BOOL)deleteAllDiagnosticFiles:(id *)a0; - (id)estimatedLibrarySizes; - (id)initWithName:(const char *)a0 libraryBundle:(id)a1 options:(id)a2; - (void)recreateMemoriesAndPersonsFromMetadata; - (void)_removeOldFaceMetadataAsync; - (void)deleteExpiredTrashedResources; - (BOOL)loadDatabaseWithOptions:(id)a0 error:(id *)a1; - (unsigned long long)countOfLocalAlbumsContainingAssets:(id)a0 assetsInSomeAlbumCount:(long long *)a1; - (void)_reallyDisableOpportunisticTasks; - (id)managedObjectContextStoreUUID; - (id)duplicatePhotoStreamPhotosForPhotos:(id)a0; - (unsigned long long)_fileSizeAtPath:(id)a0; - (void)handlePossibleCoreDataError:(id)a0; - (id)objectWithObjectID:(id)a0; - (void)recreateAlbumsAndPersonsFromMetadata; - (void)_updateAssetCountKeyPath:(id)a0 withPendingCountKeyPath:(id)a1 inContext:(id)a2; - (void)_resumeDupeAnalysis; - (id)_loadClientDatabaseContextWithOptions:(id)a0 error:(id *)a1; - (id)_loadDatabaseContextWithOptions:(id)a0 error:(id *)a1; - (void)deleteUnknownDeferredIntermediates; - (void)dataMigratorSupportCleanupModelForDataMigrationPurgeMissingSharedAndSynced; - (BOOL)getPhotoCount:(unsigned long long *)a0 videoCount:(unsigned long long *)a1; - (BOOL)hasCompletedMomentAnalysis; - (id)photoFromAssetURL:(id)a0; - (id)albumFromGroupURL:(id)a0; - (id)cplStatus; - (id)iTunesSyncedContentInfo; - (void)_filterAssets:(id)a0 toTrashableAssets:(id *)a1 deletableAssets:(id *)a2 otherAssets:(id *)a3; - (void)_userApplyTrashedState:(short)a0 toAssets:(id)a1 localOnlyDelete:(BOOL)a2 trashedReason:(unsigned short)a3 expungeReasonFromClient:(id)a4; - (void)old_refreshCachedCountsOnAllAssetContainersInContext:(id)a0; - (void)withDispatchGroup:(id)a0 performBlock:(id /* block */)a1; - (id)eventWithName:(id)a0 andImportSessionIdentifier:(id)a1; - (BOOL)isReadyForCloudPhotoLibrary; - (id)albumListForContentMode:(int)a0; - (id)description; - (void)updateAlbumKeyAssetsInContext:(id)a0 withPredicate:(id)a1; - (void)_photoLibraryForceClientExitNotification; - (id)eventAlbumContainingPhoto:(id)a0; - (void)clearTransactionCompletionHandlers; - (id)syncProgressAlbumsIgnoreiTunes:(BOOL)a0; - (id)transactionCompletionHandlers; - (void)_processPhotoIrisSidecarIfNecessary:(id)a0 forAsset:(id)a1 mainFileMetadata:(id)a2; - (id)constraintsDirector; - (id)assetURLForPhoto:(id)a0; - (void)_updateMemoryCountKeyPath:(id)a0 withPendingCountKeyPath:(id)a1 inContext:(id)a2; - (void)invalidateWithReason:(id)a0; - (BOOL)batchDeleteAssetsWithPredicate:(id)a0 reason:(id)a1 error:(id *)a2; - (id)albumWithUuid:(id)a0; - (void)cleanupIncompleteAssetsAfterOTARestore; - (void)modifyDCIMEntryForPhoto:(id)a0; - (void)_deleteEmptyImportAlbumsWithAddedAlbums:(id)a0; - (id)imageForFormat:(unsigned short)a0 forAsset:(id)a1; - (void)_cancelAllDeferredPrewarming; - (void)performTransactionAndWait:(id /* block */)a0 completionHandler:(id /* block */)a1; - (void)withDispatchGroup:(id)a0 performTransaction:(id /* block */)a1; - (void)repairSingletonObjects; - (id)lastImportedPhotosAlbumCreateIfNeeded:(BOOL)a0; - (void)_pauseChangeHandlingNotifications; - (void)resetCachedImportAlbumsIfNeededForAlbum:(id)a0; - (void)_resumeChangeHandlingNotifications; - (void).cxx_destruct; - (BOOL)isAlbumSynced:(id)a0; - (void)_userDeleteAssets:(id)a0 withReason:(id)a1 localOnlyDelete:(BOOL)a2; - (void)clientApplicationWillEnterForeground; - (void)_deleteObsoleteMetadataFiles; - (void)_applyAdjustmentFileInfo:(id)a0 renderedContentFileInfo:(id)a1 renderedVideoComplementFileInfo:(id)a2 toAsset:(id)a3 withMainFileURL:(id)a4 mainFileMetadata:(id)a5; - (BOOL)hasITunesSyncedContent; - (BOOL)safeSave:(id)a0 error:(id *)a1; - (void)batchDeleteAssets:(id)a0 withReason:(id)a1; - (void)_recreateItemsFromMetadataAtDirectoryURLs:(id)a0 includeAlbums:(BOOL)a1; - (id)_initWithPathManager:(id)a0; - (id)photoOutboundSharingTmpDirectoryURL; - (id)_fetchCompleteAssetIDsWithValidatedSavedAssetTypeMask:(unsigned short)a0 context:(id)a1; - (BOOL)_hasIncompleteAsset; - (void)performBlock:(id /* block */)a0 completionHandler:(id /* block */)a1; - (id)newImageForPhoto:(id)a0 format:(unsigned short)a1; - (unsigned long long)sharedStreamsSize; - (void)userExpungeAlbums:(id)a0; - (void)withDispatchGroup:(id)a0 performTransaction:(id /* block */)a1 completionHandler:(id /* block */)a2; - (unsigned long long)_dbFileSizes; - (void)createPhotoStreamAlbumWithStreamID:(id)a0; - (unsigned long long)numberOfCPLSupportedAssetsOfKind:(short)a0 includingTrashedSinceDate:(id)a1; - (void)_reallyEnableOpportunisticTasks; - (BOOL)hasPendingAssetsIgnoreiTunes:(BOOL)a0; - (id)_fetchedObjectsForDeleteWithEntity:(id)a0 predicate:(id)a1 batchSize:(unsigned long long)a2 error:(id *)a3; - (void)_inq_createPhotoStreamAlbumStreamID:(id)a0; - (void)_filterAlbums:(id)a0 toTrashableAlbums:(id *)a1 deletableAlbums:(id *)a2 otherAlbums:(id *)a3; - (void)userUntrashAlbums:(id)a0; - (id)allImportedPhotosAlbumCreateIfNeeded:(BOOL)a0; - (void)performBlockAndWait:(id /* block */)a0 completionHandler:(id /* block */)a1; - (void)performTransaction:(id /* block */)a0 withPriority:(long long)a1; - (void)recreatePersonsFromMetadata; - (void)performBlockAndWait:(id /* block */)a0 forceSave:(BOOL)a1; - (void)enableOpportunisticTasks; - (id)_loadClientDatabaseContextFastPath; - (void)performBlock:(id /* block */)a0; - (void)performTransaction:(id /* block */)a0 completionHandler:(id /* block */)a1; - (BOOL)isWalrusEnabled; - (void)performBlock:(id /* block */)a0 withPriority:(long long)a1; - (BOOL)hasCompletedRestorePostProcessing; - (void)_setManagedObjectContext:(id)a0; - (id)assetURLForPhoto:(id)a0 extension:(id)a1; - (id)librarySizes; - (void)disableOpportunisticTasks; - (id)librarySizesFromDB; - (void)_enumerateFilesAtURLs:(id)a0 withBlock:(id /* block */)a1; - (id)assetWithUUID:(id)a0 inContainer:(id)a1; - (void)userTrashAlbums:(id)a0; - (void)_enumerateFilesAtURL:(id)a0 withBlock:(id /* block */)a1; - (BOOL)batchDeleteObjectsWithEntity:(id)a0 predicate:(id)a1 error:(id *)a2; @end