luxlabs header browser preview


@class PLPhotoLibrary, PLLibraryServicesManager, NSMutableSet, PLLazyObject;

@interface PLDuplicateProcessor : NSObject {
    PLLibraryServicesManager *_lsm;
    struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _processingLock;
    NSMutableSet *_inFlightMergeAssetUuids;
    struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _inFlightMergeLock;
    PLLazyObject *_lazyAppPrivateData;
    BOOL _enableEXIFDataAccess;
}

@property (retain) PLPhotoLibrary *unitTestLibrary;
@property (readonly) BOOL isMerging;

+ (void)signalBackgroundJobSeviceDuplicateProcessingWithLibrary:(id)a0;
+ (void)updateSharedLibraryIsEnabledFeatureVersionIfNeededWithPhotoLibrary:(id)a0 cplConfiguration:(id)a1;
+ (BOOL)removeAllDuplicateSharedLibraryAssetFromAlbumWithPhotoLibrary:(id)a0 error:(id *)a1;
+ (BOOL)isExitingSharedLibraryForLibrary:(id)a0;
+ (BOOL)sharedLibraryDedupeEnabledWithPathManager:(id)a0;
+ (BOOL)isValidDuplicateProcessorForLibraryServicesManager:(id)a0;
+ (BOOL)_removeAssetsFromDuplicateAlbumUsingFetchRequest:(id)a0 library:(id)a1 error:(id *)a2;

- (id)initWithLibraryServicesManager:(id)a0;
- (id)_photoLibrary;
- (void).cxx_destruct;
- (id)_appPrivateData;
- (BOOL)_processMergeAlbumAssetOIDMap:(id)a0 localIdentifierMap:(id)a1 library:(id)a2 error:(id *)a3;
- (BOOL)_batchEnumerateOrGenerateAssetObjectIdsFromStartingAssetOIDs:(id)a0 library:(id)a1 error:(id *)a2 continuationHandler:(id /* block */)a3 processingBatchBlock:(id /* block */)a4;
- (id)_buildInterruptBatchFromStartingOIDs:(id)a0 library:(id)a1;
- (BOOL)_detectDuplicatesAndInsertIntoDuplicateAlbumWithPhotoLibrary:(id)a0 detector:(id)a1 duplicateType:(short)a2 error:(id *)a3;
- (id)_duplicateAlbumsFromAssets:(id)a0;
- (id)_fetchAssetOIDsForPhotoLibrary:(id)a0 error:(id *)a1;
- (id)_fetchAssetsFromOIDs:(id)a0 library:(id)a1 error:(id *)a2;
- (id)_fetchAssetsFromReference:(id)a0 isOID:(BOOL)a1 library:(id)a2 error:(id *)a3;
- (id)_fetchAssetsFromUUIDs:(id)a0 library:(id)a1 error:(id *)a2;
- (id)_fetchAssetsWithPhotoLibrary:(id)a0 assetObjectIDs:(id)a1 error:(id *)a2;
- (id)_fetchCloudIdentifiersFromAssetUUIDs:(id)a0 library:(id)a1 error:(id *)a2;
- (void)_inFlightMergeAssetsAddUUIDs:(id)a0;
- (void)_inFlightMergeAssetsRemoveUUIDs:(id)a0;
- (BOOL)_insertIntoDuplicateAlbum:(id)a0 assets:(id)a1 duplicateType:(short)a2 photoLibrary:(id)a3 error:(id *)a4;
- (BOOL)_isAssetValidForMerge:(id)a0;
- (BOOL)_isMergeFeatureEnabled:(id *)a0;
- (BOOL)_isValidSharedLibraryStateWithLibrary:(id)a0 error:(id *)a1;
- (BOOL)_moveDuplicateAlbumAssestFromAlbums:(id)a0 toTargetAlbum:(id)a1 duplicateType:(short)a2 error:(id *)a3;
- (id)_processAlbumGroupingFromAssets:(id)a0 localIdentifierToCloudIdentifiers:(id)a1 library:(id)a2;
- (void)_processCloudScopedIdentifierFromLocalIdentifiers:(id)a0 localToCloudIdentifierMap:(id)a1 cplManager:(id)a2 completionHandler:(id /* block */)a3;
- (void)_processCloudScopedIdentifiersFromAssetUUIDS:(id)a0 library:(id)a1 completionHandler:(id /* block */)a2;
- (id)_processContainersAssetUUIDS:(id)a0 library:(id)a1;
- (BOOL)_processDuplicatesWithPhotoLibrary:(id)a0 processingType:(unsigned long long)a1 assetObjectIds:(id)a2 error:(id *)a3;
- (BOOL)_processMergeAssets:(id)a0 localIdentifierMap:(id)a1 library:(id)a2 error:(id *)a3;
- (BOOL)_processMergeGroup:(id)a0 processedAssetCount:(unsigned long long *)a1 skippedAssetCount:(unsigned long long *)a2 processedAssetCountAfterSave:(unsigned long long *)a3 library:(id)a4 error:(id *)a5;
- (BOOL)_processMergeGroupContainer:(id)a0 processedAssetCount:(unsigned long long *)a1 skippedAssetCount:(unsigned long long *)a2 library:(id)a3 error:(id *)a4;
- (BOOL)_processedDuplicateAssetSubGroupWithPhotoLibrary:(id)a0 assetObjectIDs:(id)a1 duplicateType:(short)a2 error:(id *)a3;
- (id)_processedDuplicateAssetsWithPhotoLibrary:(id)a0 assetObjectIDs:(id)a1 duplicateType:(short)a2 associatedDuplicateAlbum:(id *)a3 error:(id *)a4;
- (BOOL)_processedRemoveExclusionGroupAssetsWithPhotoLibrary:(id)a0 assetObjectIDs:(id)a1 error:(id *)a2;
- (id)_resumeInterruptMarker;
- (void)_setInterruptMarker:(id)a0;
- (BOOL)assetsArePendingForDuplicateMergeProcessing:(id)a0;
- (void)mergeDuplicateAssetsWithAssetUUIDs:(id)a0 completionHandler:(id /* block */)a1;
- (BOOL)processDuplicatesOfAssetObjectIds:(id)a0 processingType:(unsigned long long)a1 error:(id *)a2 continuationHandler:(id /* block */)a3;

@end