@class NSDate, PLPerson, NSString, PLFaceCrop, NSSet, PLManagedAsset, PLDetectedFaceGroup, PLDetectedFaceprint; @protocol PLSyncablePerson; @interface PLDetectedFace : PLManagedObject @property (retain, nonatomic) NSSet *rejectedPersons; @property (nonatomic) double centerX; @property (nonatomic) double centerY; @property (nonatomic) double bodyCenterX; @property (nonatomic) double bodyCenterY; @property (nonatomic) double size; @property (nonatomic) double bodyWidth; @property (nonatomic) double bodyHeight; @property (nonatomic) int faceAlgorithmVersion; @property (copy, nonatomic) NSDate *adjustmentVersion; @property (retain, nonatomic) id personForFace; @property (retain, nonatomic) id personBeingKeyFace; @property (nonatomic) long long sourceWidth; @property (nonatomic) long long sourceHeight; @property (readonly, nonatomic) BOOL isTrainingFace; @property (nonatomic) BOOL manual; @property (nonatomic) BOOL hidden; @property (nonatomic) int nameSource; @property (nonatomic) int cloudNameSource; @property (nonatomic) int trainingType; @property (nonatomic) short detectionType; @property (nonatomic) short cloudLocalState; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly, retain, nonatomic) id localID; @property (nonatomic) int nameSource; @property (nonatomic) int cloudNameSource; @property (readonly, nonatomic) PLManagedAsset *assetForTorso; @property (readonly, nonatomic) PLPerson *personForTorso; @property (retain, nonatomic) PLManagedAsset *assetForFace; @property (retain, nonatomic) PLManagedAsset *assetForTemporalDetectedFaces; @property (retain, nonatomic) PLFaceCrop *faceCrop; @property (retain, nonatomic) PLDetectedFaceGroup *faceGroup; @property (retain, nonatomic) PLDetectedFaceprint *faceprint; @property (retain, nonatomic) PLPerson *personForFace; @property (retain, nonatomic) PLPerson *personForTemporalDetectedFaces; @property (retain, nonatomic) PLPerson *personBeingKeyFace; @property (retain, nonatomic) NSSet *rejectedPersons; @property (retain, nonatomic) PLDetectedFaceGroup *faceGroupBeingKeyFace; @property (retain, nonatomic) NSString *uuid; @property (nonatomic) long long sourceWidth; @property (nonatomic) long long sourceHeight; @property (nonatomic) double centerX; @property (nonatomic) double centerY; @property (nonatomic) double size; @property (nonatomic) double bodyCenterX; @property (nonatomic) double bodyCenterY; @property (nonatomic) double bodyWidth; @property (nonatomic) double bodyHeight; @property (nonatomic) short detectionType; @property (nonatomic) double roll; @property (nonatomic) BOOL hidden; @property (nonatomic) BOOL isInTrash; @property (nonatomic) BOOL manual; @property (nonatomic) BOOL hasSmile; @property (nonatomic) double blurScore; @property (nonatomic) BOOL isLeftEyeClosed; @property (nonatomic) BOOL isRightEyeClosed; @property (retain, nonatomic) NSString *masterIdentifier; @property (nonatomic) short confirmedFaceCropGenerationState; @property (retain, nonatomic) NSSet *rejectedPersonsNeedingFaceCrops; @property (retain, nonatomic) NSSet *clusterRejectedPersons; @property (nonatomic) int trainingType; @property (nonatomic) short vipModelType; @property (retain, nonatomic) NSDate *adjustmentVersion; @property (nonatomic) double poseYaw; @property (nonatomic) int faceAlgorithmVersion; @property (nonatomic) int clusterSequenceNumber; @property (nonatomic) int qualityMeasure; @property (nonatomic) double quality; @property (nonatomic) long long vuObservationID; @property (nonatomic) short cloudLocalState; @property (readonly, nonatomic) BOOL assetVisible; @property (nonatomic) int effectiveNameSource; @property (nonatomic) unsigned short ageType; @property (nonatomic) unsigned short genderType; @property (nonatomic) unsigned short eyesState; @property (nonatomic) unsigned short smileType; @property (nonatomic) unsigned short facialHairType; @property (nonatomic) unsigned short hairColorType; @property (nonatomic) unsigned short glassesType; @property (nonatomic) unsigned short eyeMakeupType; @property (nonatomic) unsigned short lipMakeupType; @property (retain, nonatomic) NSString *groupingIdentifier; @property (retain, nonatomic) NSSet *detectionTraits; @property (nonatomic) unsigned short faceExpressionType; @property (nonatomic) unsigned short headgearType; @property (nonatomic) unsigned short hairType; @property (nonatomic) unsigned short poseType; @property (nonatomic) unsigned short skintoneType; @property (nonatomic) unsigned short ethnicityType; @property (nonatomic) BOOL hasFaceMask; @property (nonatomic) unsigned short gazeType; @property (nonatomic) double gazeCenterX; @property (nonatomic) double gazeCenterY; @property (nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } gazeRect; @property (nonatomic) float gazeAngle; @property (nonatomic) float gazeConfidence; @property (nonatomic) double startTime; @property (nonatomic) double duration; @property (retain, nonatomic) NSString *gazeRectString; + (id)stringFromGazeRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; + (id)entityName; + (id)syncableFacesToUploadInitiallyInLibrary:(id)a0 limit:(unsigned long long)a1; + (void)batchFetchDetectedFacesByAssetUUIDWithAssetUUIDs:(id)a0 predicate:(id)a1 fetchType:(long long)a2 library:(id)a3 completion:(id /* block */)a4; + (id)predicatesToExcludeNonVisibleFaces; + (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })cgRectFromGazeRectString:(id)a0; + (id)syncableFacesPredicate; + (id)predicateToExcludeFaceDetection; + (id)detectedFaceWithUUID:(id)a0 inManagedObjectContext:(id)a1; + (id)predicateForFetchType:(long long)a0; + (id)predicateForFaceCountTrigger; + (id)_syncableFacesToUploadInitiallyPredicate; + (id)_facesMatchingPredicate:(id)a0 limit:(unsigned long long)a1 inPhotoLibrary:(id)a2; + (void)batchFetchKeyFaceByPersonObjectIDWithPersonObjectIDs:(id)a0 library:(id)a1 completion:(id /* block */)a2; + (void)enumerateAssetUUIDsForSearchIndexingWithDetectedFaceUUIDs:(id)a0 managedObjectContext:(id)a1 assetUUIDHandler:(id /* block */)a2; + (id)findExistingFaceMatchingDimension:(id)a0 inFaces:(id)a1 ignoreSourceAssetDimensions:(BOOL)a2; + (id)predicatesForFacesNeedingFaceCropGeneration; + (id)predicateForIncludedDetectionTypes:(id)a0; + (void)resetCloudStateInPhotoLibrary:(id)a0; + (id)predicateForArchival; + (id)predicateToExcludeBodyOnlyDetection; + (long long)resetAssetForAllSyncableFacesInManagedObjectContext:(id)a0 error:(id *)a1; + (id)assetIDsWithAllPersonsFromPersonIDs:(id)a0 inContext:(id)a1; - (void)willSave; - (void)delete; - (BOOL)validateForUpdate:(id *)a0; - (id)payloadForChangedKeys:(id)a0; - (void)awakeFromInsert; - (id)payloadID; - (id)payloadIDForTombstone:(id)a0; - (BOOL)supportsCloudUpload; - (BOOL)isSyncableChange; - (BOOL)validateForInsert:(id *)a0; - (id)debugLogDescription; - (id)cplFullRecord; - (BOOL)isValidForJournalPersistence; - (void)removeFaceprint; - (void)addClusterRejectedPerson:(id)a0; - (void)addRejectedPersonNeedingFaceCrops:(id)a0; - (id)associatedAssetForFaceOrTorso:(BOOL)a0 orTemporal:(BOOL)a1; - (id)associatedPersonForFaceOrTorso:(BOOL)a0 orTemporal:(BOOL)a1; - (void)fixAssetRelationshipsForFaceTorsoOrTemporal; - (void)fixPersonRelationshipsForFaceTorsoOrTemporal; - (BOOL)isTorsoOnly; - (id)namingDescription; - (void)setAssociatedPerson:(id)a0; - (double)photosFaceRepresentationCenterX; - (double)photosFaceRepresentationQuality; - (id)syncDescription; - (BOOL)_isFaceAndTorso; - (BOOL)_isTemporalFace; - (double)photosFaceRepresentationCenterY; - (void)_fixUpTemporalRelationships; - (BOOL)_isFaceOnly; - (BOOL)_isNeitherFaceNorTorso; - (BOOL)_startTimeAndDurationAreValid; - (void)_touchPersonForPersistenceIfNeeded; - (void)_updateFaceGroupIfNeeded; - (BOOL)_validateForOperation:(id)a0 error:(id *)a1; - (void)_verifyAssetRelationship; - (void)_verifyTorsoRelationships; - (void)addRejectedPerson:(id)a0; - (void)migration_setAssetForTorso:(id)a0; - (void)migration_setPersonForTorso:(id)a0; - (double)photosFaceRepresentationBlurScore; - (double)photosFaceRepresentationBodyCenterX; - (double)photosFaceRepresentationBodyCenterY; - (double)photosFaceRepresentationBodyHeight; - (double)photosFaceRepresentationBodyWidth; - (long long)photosFaceRepresentationClusterSequenceNumber; - (BOOL)photosFaceRepresentationHasSmile; - (BOOL)photosFaceRepresentationIsLeftEyeClosed; - (BOOL)photosFaceRepresentationIsRightEyeClosed; - (id)photosFaceRepresentationLocalIdentifier; - (long long)photosFaceRepresentationQualityMeasure; - (double)photosFaceRepresentationRoll; - (double)photosFaceRepresentationSize; - (long long)photosFaceRepresentationSourceHeight; - (long long)photosFaceRepresentationSourceWidth; - (void)removeAllPersonRelationships; - (void)setAssociatedAsset:(id)a0; - (BOOL)validForPersistenceChangedForChangedKeys:(id)a0; @end