@class NSURL, SFUCryptoKey, NSMapTable, NSObject, TSUTemporaryDirectory, NSString, TSPDataManager, TSPObjectContainer, NSRecursiveLock, TSPObject, NSData, NSUUID; @protocol OS_dispatch_queue, TSPObjectContextDelegate, OS_dispatch_group; @interface TSPObjectContext : NSObject <TSPFileCoordinatorDelegate, TSPObjectDelegate, TSPLazyReferenceDelegate, TSPSupportDirectoryDelegate, TSPDocumentResourceDownloader, TSPPassphraseConsumer> { long long _lastObjectIdentifier; long long _modifyObjectToken; int _modifyObjectCount; unsigned int _mode; SFUCryptoKey *_decryptionKey; NSURL *_documentURL; NSURL *_supportURL; NSMapTable *_objects; NSObject<OS_dispatch_queue> *_objectsQueue; NSObject<OS_dispatch_queue> *_writeQueue; NSRecursiveLock *_readLock; NSObject<OS_dispatch_queue> *_documentStateQueue; NSObject<OS_dispatch_queue> *_loadObserversQueue; NSObject<OS_dispatch_queue> *_runLoadObserversQueue; NSObject<OS_dispatch_queue> *_documentResourceDataProviderQueue; BOOL _isWaitingForEndSave; NSObject<OS_dispatch_group> *_pendingEndSaveGroup; NSObject<OS_dispatch_group> *_outstandingReadsGroup; NSObject<OS_dispatch_queue> *_temporaryDirectoryQueue; TSUTemporaryDirectory *_temporaryDirectory; struct unordered_map<const long long, NSMutableArray *, TSP::IdentifierHash, std::equal_to<const long long>, std::allocator<std::pair<const long long, NSMutableArray *>>> { struct __hash_table<std::__hash_value_type<const long long, NSMutableArray *>, std::__unordered_map_hasher<const long long, std::__hash_value_type<const long long, NSMutableArray *>, TSP::IdentifierHash, std::equal_to<const long long>>, std::__unordered_map_equal<const long long, std::__hash_value_type<const long long, NSMutableArray *>, std::equal_to<const long long>, TSP::IdentifierHash>, std::allocator<std::__hash_value_type<const long long, NSMutableArray *>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<const long long, NSMutableArray *>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<const long long, std::__hash_value_type<const long long, NSMutableArray *>, TSP::IdentifierHash, std::equal_to<const long long>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<const long long, std::__hash_value_type<const long long, NSMutableArray *>, std::equal_to<const long long>, TSP::IdentifierHash>> { float __value_; } __p3_; } __table_; } _loadObservers; } @property (readonly, nonatomic) BOOL ignoreDocumentSupport; @property (readonly, nonatomic) BOOL isDocumentSupportTemporary; @property (readonly, nonatomic) BOOL ignoreUnknownContentWhileReading; @property (readonly, nonatomic) BOOL ignoreVersionCheckingWhileReading; @property (readonly, nonatomic) BOOL ignoreDocumentResourcesWhileReading; @property (readonly, nonatomic) TSPDataManager *dataManager; @property (retain, nonatomic) TSPObjectContainer *documentObjectContainer; @property (retain, nonatomic) TSPObjectContainer *supportObjectContainer; @property (readonly, nonatomic) BOOL documentHasCurrentFileFormatVersion; @property (nonatomic) long long lastObjectIdentifier; @property (retain, nonatomic) NSData *passwordVerifier; @property (readonly, nonatomic) BOOL areNewExternalReferencesToDataAllowed; @property (readonly, nonatomic) NSUUID *documentUUID; @property (readonly, nonatomic) NSUUID *versionUUID; @property (retain, nonatomic) TSPObject *supportObject; @property (readonly, nonatomic) SFUCryptoKey *decryptionKey; @property (readonly, nonatomic) NSURL *documentURL; @property (nonatomic) BOOL isDocumentModified; @property (nonatomic) BOOL isSupportModified; @property (nonatomic) BOOL isPasswordProtected; @property (copy, nonatomic) NSString *documentPasswordHint; @property (readonly, nonatomic) TSPObject *documentObject; @property (weak, nonatomic) id<TSPObjectContextDelegate> delegate; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly, nonatomic) TSPObjectContext *context; @property (readonly, nonatomic) BOOL needsDownload; @property (readonly, nonatomic) long long estimatedDownloadSize; @property (readonly, nonatomic) BOOL isEstimatedDownloadSizePrecise; @property (readonly, nonatomic) NSString *passphraseHint; @property (readonly, nonatomic) NSData *keychainGenericItem; @property (readonly, nonatomic) NSString *service; + (void)waitForPendingEndSaveGroup:(id)a0; - (void)close; - (id)init; - (void)dealloc; - (id)objectForIdentifier:(long long)a0; - (id).cxx_construct; - (id)temporaryDirectory; - (void).cxx_destruct; - (id)initWithDelegate:(id)a0; - (id)documentRoot; - (void)endIgnoringCachedObjectEviction; - (void)addLoadObserver:(id)a0 action:(SEL)a1 forLazyReference:(id)a2; - (void)addLoadObserver:(id)a0 action:(SEL)a1 forObjectIdentifier:(long long)a2 objectOrNil:(id)a3; - (id)addLoadedObjectsAndEnqueueNotifications:(id)a0; - (BOOL)areExternalReferencesSupported; - (BOOL)areExternalReferencesToDataAllowedAtURL:(id)a0; - (void)beginAssertOnModify; - (void)beginIgnoringCachedObjectEviction; - (void)beginWriteOperation; - (void)checkforDataWarningsWithPackageURL:(id)a0; - (id)dataOrNilForIdentifier:(long long)a0; - (void)didMoveSupportToURL:(id)a0; - (void)didMoveToURL:(id)a0; - (void)didReadDocumentObject:(id)a0; - (void)endAssertOnModify; - (void)endWriteOperation; - (long long)incrementLastObjectIdentifier:(long long)a0; - (long long)modifyObjectTokenForNewObject; - (long long)newObjectIdentifier; - (void)performReadOperation:(id /* block */)a0; - (void)performReadOperationOnKnownObjects:(id /* block */)a0; - (void)resumeLoadingModifiedFlushedComponents; - (void)runObjectNotificationsInQueue:(id)a0; - (void)setDocumentObject:(id)a0; - (id)supportDirectoryURL; - (void)suspendLoadingModifiedFlushedComponentsAndWait; - (long long)updateModifyObjectToken; - (void)waitForSaveToFinishIfNeeded; @end