@class NSXPCConnection, NSString, NSArray, NSError, NSMutableDictionary, NSFileAccessProcessManager, NSCountedSet, NSObject, NSMutableArray, NSMutableOrderedSet, NSMutableSet; @protocol OS_dispatch_queue, OS_dispatch_semaphore; @interface NSFileAccessClaim : NSObject <NSSecureCoding> { NSXPCConnection *_client; NSString *_claimID; NSString *_purposeIDOrNil; BOOL _cameFromSuperarbiter; unsigned long long _blockageCount; BOOL _didWait; BOOL _isRevoked; NSMutableArray *_claimerBlockageReasons; NSError *_claimerError; NSMutableOrderedSet *_pendingClaims; NSMutableSet *_blockingClaims; NSCountedSet *_blockingReactorIDs; NSMutableArray *_providerCancellationProcedures; NSMutableDictionary *_reacquisitionProceduresByPresenterID; NSMutableArray *_revocationProcedures; NSMutableArray *_devaluationProcedures; NSMutableArray *_finishingProcedures; NSFileAccessProcessManager *_processManager; BOOL _hasInvokedClaimer; id _claimerOrNil; id /* block */ _serverClaimerOrNil; NSMutableArray *_sandboxTokens; NSObject<OS_dispatch_queue> *_arbiterQueue; id _originatingReactorQueueID; NSMutableDictionary *_fileHandlesForEvictionProtection; } @property (class, readonly) BOOL supportsSecureCoding; @property (readonly) NSObject<OS_dispatch_semaphore> *claimerWaiter; @property (readonly, copy) NSArray *allURLs; @property BOOL shouldEnableMaterializationDuringAccessorBlock; + (BOOL)canNewWriteOfItemAtLocation:(id)a0 options:(unsigned long long)a1 safelyOverlapExistingWriteOfItemAtLocation:(id)a2 options:(unsigned long long)a3; + (BOOL)canReadingItemAtLocation:(id)a0 options:(unsigned long long)a1 safelyOverlapNewWriting:(BOOL)a2 ofItemAtLocation:(id)a3 options:(unsigned long long)a4; - (BOOL)didWait; - (void)finished; - (int)clientProcessIdentifier; - (void)devalueSelf; - (void)disavowed; - (void)devalueOldClaim:(id)a0; - (id)descriptionWithIndenting:(id)a0; - (void)setClaimerError:(id)a0; - (void)dealloc; - (BOOL)isBlockedByClaimWithPurposeID:(id)a0; - (void)makeProviderOfItemAtLocation:(id)a0 provideOrAttachPhysicalURLIfNecessaryForPurposeID:(id)a1 writingOptions:(unsigned long long)a2 thenContinue:(id /* block */)a3; - (id)purposeIDOfClaimOnItemAtLocation:(id)a0 forMessagingPresenter:(id)a1; - (void)setCameFromSuperarbiter; - (void)itemAtLocation:(id)a0 wasReplacedByItemAtLocation:(id)a1; - (id)client; - (void)forwardUsingConnection:(id)a0 crashHandler:(id /* block */)a1; - (BOOL)evaluateSelfWithRootNode:(id)a0 checkSubarbitrability:(BOOL)a1; - (void)_setupWithClaimID:(id)a0 purposeID:(id)a1 originatingReactorQueueID:(id)a2; - (void)encodeWithCoder:(id)a0; - (void)addPendingClaim:(id)a0; - (void)removeBlockingReactorID:(id)a0; - (void)scheduleBlockedClaim:(id)a0; - (BOOL)shouldReadingWithOptions:(unsigned long long)a0 causePresenterToRelinquish:(id)a1; - (id)purposeID; - (void)ensureProvidersOfItemsAtReadingLocations:(id)a0 writingLocations:(id)a1 thenContinue:(id /* block */)a2; - (BOOL)checkIfSymbolicLinkAtURL:(id)a0 withResolutionCount:(long long *)a1 andIfSoThenReevaluateSelf:(id /* block */)a2; - (BOOL)shouldWritingWithOptions:(unsigned long long)a0 causePresenterToRelinquish:(id)a1; - (void)makeProvidersProvideItemsForReadingLocations:(id)a0 options:(unsigned long long *)a1 andWritingLocationsIfNecessary:(id)a2 options:(unsigned long long *)a3 thenContinue:(id /* block */)a4; - (id)claimerError; - (void)protectFilesAgainstEviction; - (BOOL)cameFromSuperarbiter; - (void)cancelled; - (id)description; - (id)pendingClaims; - (void)whenRevokedPerformProcedure:(id /* block */)a0; - (BOOL)shouldMakeProviderProvideItemAtLocation:(id)a0 withOptions:(unsigned long long)a1; - (void)granted; - (void)removePendingClaims:(id)a0; - (void)unblock; - (BOOL)shouldBeRevokedPriorToInvokingAccessor; - (void)makeProviderOfItemAtLocation:(id)a0 provideIfNecessaryWithOptions:(unsigned long long)a1 thenContinue:(id /* block */)a2; - (void)whenFinishedPerformProcedure:(id /* block */)a0; - (void)givePriorityToClaim:(id)a0; - (void)makePresentersOfItemAtLocation:(id)a0 orContainedItem:(BOOL)a1 relinquishUsingProcedureGetter:(id /* block */)a2; - (void)evaluateNewClaim:(id)a0; - (void)prepareItemForUploadingFromURL:(id)a0 thenContinue:(id /* block */)a1; - (void)revoked; - (BOOL)canAccessLocations:(id)a0 forReading:(BOOL)a1 error:(id *)a2; - (id)claimID; - (void)invokeClaimer; - (void)prepareClaimForGrantingWithArbiterQueue:(id)a0; - (BOOL)shouldCancelInsteadOfWaiting; - (BOOL)claimerInvokingIsBlockedByReactorWithID:(id)a0; - (void)makeProviderOfItemAtLocation:(id)a0 provideOrAttachPhysicalURLIfNecessaryForPurposeID:(id)a1 readingOptions:(unsigned long long)a2 thenContinue:(id /* block */)a3; - (id)initWithClient:(id)a0 claimID:(id)a1 purposeID:(id)a2; - (void)startObservingClientState; - (void)unblockClaimerForReason:(id)a0; - (void)acceptClaimFromClient:(id)a0 arbiterQueue:(id)a1 grantHandler:(id /* block */)a2; - (void)_protectIfNecessaryFileAtURL:(id)a0 withOptions:(unsigned long long)a1 forReading:(BOOL)a2; - (void)_checkIfMovingRequiresProvidingAmongWritingLocations:(id)a0 options:(unsigned long long *)a1 thenContinue:(id /* block */)a2; - (void)block; - (void)addBlockingReactorID:(id)a0; - (void)makeProviderOfItemAtLocation:(id)a0 providePhysicalURLThenContinue:(id /* block */)a1; - (void)blockClaimerForReason:(id)a0; - (BOOL)isBlockedByWritingItemAtLocation:(id)a0 options:(unsigned long long)a1; - (BOOL)isBlockedByReadingItemAtLocation:(id)a0 options:(unsigned long long)a1; - (void)whenDevaluedPerformProcedure:(id /* block */)a0; - (BOOL)shouldInformProvidersAboutEndOfWriteWithOptions:(unsigned long long)a0; - (id)initWithCoder:(id)a0; - (BOOL)isRevoked; - (BOOL)_writeArchiveOfDirectoryAtURL:(id)a0 toURL:(id)a1 error:(id *)a2; - (BOOL)isGranted; @end