@class NSData, NSArray, CKDProtocolTranslator, NSMutableDictionary, NSDictionary, CKDDecryptRecordsOperation, NSObject, C2RequestOptions, NSMapTable; @protocol OS_dispatch_queue, CKModifyRecordsOperationCallbacks; @interface CKDModifyRecordsOperation : CKDDatabaseOperation { CKDDecryptRecordsOperation *_decryptOperation; BOOL _hasRecordsToSave; BOOL _hasRecordsToDelete; } @property (nonatomic) unsigned long long state; @property (retain, nonatomic) NSArray *recordsToSave; @property (retain, nonatomic) NSArray *recordIDsToDelete; @property (retain, nonatomic) NSDictionary *recordIDsToDeleteToEtags; @property (retain, nonatomic) NSDictionary *recordIDsToDeleteToSigningPCSIdentity; @property (retain, nonatomic) NSDictionary *conflictLosersToResolveByRecordID; @property (retain, nonatomic) NSDictionary *pluginFieldsForRecordDeletesByID; @property (retain, nonatomic) NSDictionary *handlersByRecordID; @property (retain, nonatomic) NSDictionary *parentsByRecordID; @property (retain, nonatomic) NSMapTable *handlersByAssetNeedingRecordFetch; @property (retain, nonatomic) NSMapTable *handlersByAsset; @property (retain, nonatomic) NSMutableDictionary *modifyHandlersByZoneID; @property (nonatomic) int saveAttempts; @property (nonatomic) long long savePolicy; @property (copy, nonatomic) NSData *clientChangeTokenData; @property (nonatomic) BOOL retriedRecords; @property (nonatomic) BOOL shouldOnlySaveAssetContent; @property (nonatomic) BOOL haveOutstandingHandlers; @property (nonatomic) BOOL atomic; @property (retain, nonatomic) CKDProtocolTranslator *translator; @property (nonatomic) BOOL shouldReportRecordsInFlight; @property (retain, nonatomic) NSObject<OS_dispatch_queue> *modifyRecordsQueue; @property (readonly, nonatomic) CKDDecryptRecordsOperation *recordDecryptOperation; @property (readonly, nonatomic) BOOL hasDecryptOperation; @property (copy, nonatomic) NSData *cachedUserBoundaryKeyData; @property (retain, nonatomic) NSDictionary *assetUUIDToExpectedProperties; @property (retain, nonatomic) NSDictionary *packageUUIDToExpectedProperties; @property (nonatomic) BOOL originatingFromDaemon; @property (nonatomic) BOOL markAsParticipantNeedsNewInvitationToken; @property (nonatomic) BOOL requestNeedsUserPublicKeys; @property (retain, nonatomic) NSArray *userPublicKeys; @property (copy, nonatomic) C2RequestOptions *streamingAssetRequestOptions; @property (nonatomic) BOOL shouldModifyRecordsInDatabase; @property (nonatomic) BOOL includeMergeableDeltasInModifyRecordsRequest; @property (nonatomic) BOOL shouldCloneFileInAssetCache; @property (retain, nonatomic) id<CKModifyRecordsOperationCallbacks> clientOperationCallbackProxy; @property (nonatomic) BOOL retryPCSFailures; @property (nonatomic) BOOL canSetPreviousProtectionEtag; @property (nonatomic) BOOL trustProtectionData; @property (nonatomic) BOOL alwaysFetchPCSFromServer; @property (copy, nonatomic) id /* block */ saveProgressBlock; @property (copy, nonatomic) id /* block */ saveCompletionBlock; @property (copy, nonatomic) id /* block */ deleteCompletionBlock; @property (copy, nonatomic) id /* block */ uploadCompletionBlock; @property (copy, nonatomic) id /* block */ recordsInFlightBlock; + (long long)isPredominatelyDownload; + (BOOL)_claimPackagesInRecord:(id)a0 error:(id *)a1; + (id)nameForState:(unsigned long long)a0; - (id)relevantZoneIDs; - (BOOL)isOperationType:(int)a0; - (BOOL)makeStateTransition; - (BOOL)supportsClearAssetEncryption; - (BOOL)_needsSigningPCS; - (void)_finishOnCallbackQueueWithError:(id)a0; - (void)_fetchSharePCSData; - (id)initWithOperationInfo:(id)a0 container:(id)a1; - (id)analyticsPayload; - (id)requestedFieldsByRecordIDForRecords:(id)a0; - (int)operationType; - (id)activityCreate; - (void)assetArray:(id)a0 didFetchRecord:(id)a1 error:(id)a2; - (void)_fetchShareParticipants; - (void)_fetchRecordPCSData; - (void)_handleMergeableDeltaSavedForRecordID:(id)a0 key:(id)a1 result:(id)a2; - (void)_enumerateHandlersInState:(unsigned long long)a0 withBlock:(id /* block */)a1; - (void)_verifyRecordEncryption; - (void)main; - (void)_handleDecryptionFailure:(id)a0 forRecordID:(id)a1; - (BOOL)_shouldToposortInContainerID:(id)a0; - (id)handlerForSaveWithRecord:(id)a0; - (id)_prepareAssetsForUpload; - (void)_reportRecordsInFlight; - (void)_fetchContainerScopedUserID; - (void)_applySideEffects; - (void)_performHandlerCallbacks; - (BOOL)_topoSortRecords; - (void)_uploadAssets; - (void)_markRecordHandlersAsUploaded; - (void)saveCallbackWithMetadata:(id)a0 error:(id)a1; - (void)_reallyHandleRecordSaved:(id)a0 handler:(id)a1 etag:(id)a2 dateStatistics:(id)a3 expirationDate:(id)a4 responseCode:(id)a5 keysAssociatedWithETag:(id)a6 recordForOplockFailure:(id)a7 decryptedServerRecord:(id)a8; - (void)_determineEnvironment; - (void)_clearProtectionDataIfNotEntitled; - (id)handlerForDeleteWithRecordID:(id)a0; - (void).cxx_destruct; - (void)deleteCallbackWithMetadata:(id)a0 error:(id)a1; - (id)_topoSortRecordsForHandlers:(id)a0; - (void)_uploadMergeableDeltas; - (void)_prepareForUpload; - (void)_fetchUserPublicKeys; - (BOOL)validateAgainstLiveContainer:(id)a0 error:(id *)a1; - (void)_prepareParentPCS; - (BOOL)_hasHandlerInState:(unsigned long long)a0; - (void)_handleRecordSaved:(id)a0 handler:(id)a1 etag:(id)a2 dateStatistics:(id)a3 expirationDate:(id)a4 responseCode:(id)a5 keysAssociatedWithETag:(id)a6 recordForOplockFailure:(id)a7 serverRecord:(id)a8; - (void)_handleReplaceDeltasRequest:(id)a0 result:(id)a1; - (void)_performCallbacksForNonAtomicZoneHandlers:(id)a0; - (void)_performCallbacksForAtomicZoneHandlers:(id)a0; - (id)_createModifyRequestWithRecordsToSave:(id)a0 recordsToDelete:(id)a1 recordsToDeleteToEtags:(id)a2 recordIDsToDeleteToSigningPCSIdentity:(id)a3 handlersByRecordID:(id)a4 sendMergeableDeltas:(BOOL)a5; - (BOOL)_prepareRecordsForSave; - (void)packageArray:(id)a0 didFetchRecord:(id)a1 error:(id)a2; - (void)_didCompleteRecordFetchOperation:(id)a0 assetArrayByRecordID:(id)a1; - (void)_fetchAssetRecordsForRereferencing; - (void)_handleRecordDeleted:(id)a0 handler:(id)a1 responseCode:(id)a2; - (void)finishWithError:(id)a0; - (void)_continueRecordsModify; - (void)_setBoundaryKeyOnAssetsToUpload:(id)a0; - (void)callbackWithMetadata:(id)a0 error:(id)a1; - (void)_fetchUserBoundaryKey; @end