@class TSPObjectContext, TSPObjectContainer, TSPPackageMetadata, TSPArchiverManager, NSMutableArray, NSError, NSString, NSMutableSet, TSPDocumentRevision, TSPPersistedDataReferenceMap, TSPObjectReferenceMap, NSObject, NSSet, TSPComponentExternalReferenceMap, TSPObject, TSPDataAttributesSnapshot, TSPSupportPackageWriteCoordinator, TSPPersistedObjectUUIDMap, NSURL, NSMapTable, NSHashTable; @protocol OS_dispatch_queue, OS_dispatch_group; @interface TSPPackageWriteCoordinator : NSObject { _Atomic BOOL _didWriteObjectContainer; TSPObjectContext *_context; unsigned char _packageIdentifier; TSPDocumentRevision *_documentRevision; unsigned long long _fileFormatVersion; unsigned long long _saveToken; long long _preferredPackageType; TSPObject *_metadataObject; TSPDataAttributesSnapshot *_dataAttributesSnapshot; TSPObjectReferenceMap *_objectReferenceMap; TSPArchiverManager *_archiverManager; NSObject *_completionQueue; NSObject *_completionGroup; NSSet *_knownComponentLocators; struct IdentifierMap { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _componentPropertiesSnapshot; NSObject *_accessQueue; _Atomic unsigned long long _accessQueueSuspendCount; _Atomic void *_currentComponentWriterPointer; struct IdentifierMap { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _writtenComponents; struct IdentifierMap { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _componentProperties; struct map, std::less, std::allocator>>> { struct __tree>, std::__map_value_compare>, std::less>, std::allocator>>> { void *__begin_node_; struct __compressed_pair *>, std::allocator>, void *>>> { struct __tree_end_node *> { void *__left_; } __value_; } __pair1_; struct __compressed_pair>, std::less>> { unsigned long long __value_; } __pair3_; } __tree_; } _remainingComponentsQueue; NSMutableSet *_packageLocatorSet; TSPObjectContainer *_objectContainer; long long _objectContainerIdentifier; TSPPersistedObjectUUIDMap *_persistedUUIDMap; TSPPersistedDataReferenceMap *_persistedDataReferenceMap; NSMapTable *_loadedObjects; _Atomic unsigned long long _wastefullyEnqueuedComponentCount; struct IdentifierMap { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _writtenObjects; struct IdentifierMap { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _delayedObjects; struct queue> { struct deque> { struct __split_buffer> { struct WrittenObjectInfo **__first_; struct WrittenObjectInfo **__begin_; struct WrittenObjectInfo **__end_; struct __compressed_pair> { struct WrittenObjectInfo **__value_; } __end_cap_; } __map_; unsigned long long __start_; struct __compressed_pair> { unsigned long long __value_; } __size_; } c; } _writtenLazyReferences; NSObject *_modifyObjectQueue; NSHashTable *_modifiedObjectsDuringWrite; BOOL _captureSnapshots; NSObject *_externalLazyReferencesQueue; TSPComponentExternalReferenceMap *_externalLazyReferencesMap; NSObject *_externalReferenceQueue; NSMutableArray *_externalReferenceBlocks; NSMutableSet *_duplicateUUIDs; NSObject *_metadataQueue; unsigned long long _readVersion; unsigned long long _writeVersion; NSMutableSet *_featureIdentifiers; NSHashTable *_referencedDatas; NSMutableArray *_dataFinalizeHandlers; _Atomic BOOL _writeSuccess; _Atomic BOOL _didAttemptRecoveryByDirtyingAllComponents; _Atomic BOOL _isRecoverableError; _Atomic BOOL _isCancelled; _Atomic BOOL _didWriteRootObject; _Atomic BOOL _didWriteMetadata; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _packageWriterErrorLock; NSError *_packageWriterError; NSURL *_documentTargetURL; TSPSupportPackageWriteCoordinator *_supportPackageWriteCoordinator; struct IdentifierMap { struct __hash_table, std::__unordered_map_hasher, std::hash, std::equal_to>, std::__unordered_map_equal, std::equal_to, std::hash>, std::allocator>> { struct unique_ptr, void *> *> *[], std::__bucket_list_deallocator, void *> *> *>>> { struct __compressed_pair, void *> *> **, std::__bucket_list_deallocator, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator, void *> *> *>> { struct __compressed_pair, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair, void *> *>, std::allocator, void *>>> { struct __hash_node_base, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair, std::hash, std::equal_to>> { unsigned long long __value_; } __p2_; struct __compressed_pair, std::equal_to, std::hash>> { float __value_; } __p3_; } __table_; } _validatedExternalReferences; } @property (readonly, nonatomic) TSPPackageMetadata *packageMetadata; @property (readonly, nonatomic) TSPObjectContainer *objectContainer; @property (readonly, nonatomic) NSSet *featureIdentifiers; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly, nonatomic) NSURL *relativeURLForExternalData; - (id)init; - (void)dealloc; - (id)objectForIdentifier:(long long)a0; - (id).cxx_construct; - (void).cxx_destruct; - (BOOL)didWriteComponentWithIdentifier:(long long)a0 wasCopied:(BOOL *)a1 componentReadVersion:(unsigned long long *)a2; - (void)addDataFinalizeHandlerForSuccessfulSave:(id /* block */)a0; - (void)addDelayedObject:(id)a0 forComponentRootObject:(id)a1 claimingComponent:(id)a2 isDelayedObjectReferencedByObjectContainer:(BOOL)a3 completion:(id /* block */)a4; - (void)addDelayedObjectToObjectContainer:(id)a0 referencingComponent:(id)a1 forWastefullyEnqueuedComponent:(id)a2 componentRootObject:(id)a3; - (void)archiveComponent:(id)a0 locator:(id)a1 compressionAlgorithm:(long long)a2 storeOutsideObjectArchive:(BOOL)a3 rootObject:(id)a4 withPackageWriter:(id)a5; - (void)attemptDocumentRecovery; - (void)calculateExternalReferences; - (id)componentForObjectIdentifier:(long long)a0 objectOrNil:(id)a1 componentReadVersion:(unsigned long long *)a2; - (long long)componentIdentifierForObjectIdentifier:(long long)a0 objectOrNil:(id)a1 objectUUIDOrNil:(id)a2 outComponentIsVersioned:(BOOL *)a3; - (void)componentWriter:(id)a0 canSkipArchivingStronglyReferencedObject:(id)a1 fromComponentRootObject:(id)a2 completion:(id /* block */)a3; - (id)componentWriter:(id)a0 locatorForClaimingComponent:(id)a1; - (BOOL)componentWriter:(id)a0 object:(id)a1 belongsToCopiedComponent:(id)a2; - (id)componentWriter:(id)a0 wantsComponentOfObject:(id)a1 componentReadVersion:(unsigned long long *)a2; - (id)componentWriter:(id)a0 wantsExplicitComponentRootObjectForObject:(id)a1 archiverOrNil:(id)a2 claimingComponent:(id)a3 hasArchiverAccessLock:(BOOL)a4; - (void)componentWriterNeedsDocumentRecovery:(id)a0; - (id)componentWriterWantsDelayedObjects:(id)a0; - (void)copyComponent:(id)a0 locator:(id)a1 preferredLocator:(id)a2 rootObject:(id)a3 packageWriter:(id)a4; - (id)createPackageMetadataWritingDatasWithPackageWriter:(id)a0 saveOperationState:(id)a1 error:(id *)a2; - (void)didFinishWritingWithSupportPackageWriteCoordinator:(id)a0; - (void)didReferenceData:(id)a0; - (BOOL)didWriteData:(id)a0; - (BOOL)didWriteObject:(id)a0 claimingComponent:(id *)a1 componentReadVersion:(unsigned long long *)a2; - (BOOL)didWriteObjectWithIdentifier:(long long)a0; - (BOOL)enqueueComponent:(id)a0 rootObjectOrNil:(id)a1 forceArchive:(BOOL)a2 isWastefullyEnqueueing:(BOOL)a3 isWeakReference:(BOOL)a4 referencingComponent:(id)a5 referencedObject:(id)a6 hasArchiverAccessLock:(BOOL)a7; - (void)enqueueReferencedObject:(id)a0 referencingComponent:(id)a1 isWeakReference:(BOOL)a2 forWastefullyEnqueuedComponent:(id)a3 componentRootObject:(id)a4 componentInfo:(struct WrittenComponentInfo { id x0; id x1; BOOL x2; BOOL x3; id x4; BOOL x5; BOOL x6; BOOL x7; id x8; id x9; BOOL x10; unsigned char x11; long long x12; unsigned long long x13; unsigned long long x14; unsigned long long x15; unsigned long long x16; BOOL x17; id x18; id x19; id x20; id x21; id x22; id x23; id x24; id x25; } *)a5 hasArchiverAccessLock:(BOOL)a6; - (void)enqueueRootObject:(id)a0 forceArchive:(BOOL)a1 isAddingDelayedObjectReferencedByObjectContainer:(BOOL)a2 completion:(id /* block */)a3; - (void)enqueueRootObjectImpl:(id)a0 forceArchive:(BOOL)a1 isAddingDelayedObjectReferencedByObjectContainer:(BOOL)a2 completion:(id /* block */)a3; - (void)enumerateWrittenObjectsWithBlock:(id /* block */)a0; - (id)explicitComponentRootObjectForObject:(id)a0; - (id)explicitComponentRootObjectForObject:(id)a0 archiverOrNil:(id)a1 claimingComponent:(id)a2 newClaimingComponent:(id)a3 newClaimingRootObject:(id)a4 willEnqueueDelayedObject:(BOOL)a5 hasArchiverAccessLock:(BOOL)a6; - (void)forceArchivingComponentIdentifier:(long long)a0; - (id)initWithContext:(id)a0 archiverClass:(Class)a1 archiverFlags:(char)a2 documentRevision:(id)a3 saveToken:(unsigned long long)a4 packageIdentifier:(unsigned char)a5 fileFormatVersion:(unsigned long long)a6 preferredPackageType:(long long)a7 metadataObject:(id)a8; - (id)initWithContext:(id)a0 archiverClass:(Class)a1 archiverFlags:(char)a2 documentRevision:(id)a3 saveToken:(unsigned long long)a4 packageIdentifier:(unsigned char)a5 fileFormatVersion:(unsigned long long)a6 preferredPackageType:(long long)a7 metadataObject:(id)a8 packageWriteCoordinator:(id)a9 captureSnapshots:(BOOL)a10; - (BOOL)isComponentExternalWithIdentifier:(long long)a0 wasCopied:(BOOL *)a1 componentReadVersion:(unsigned long long *)a2; - (BOOL)isComponentPersisted:(id)a0; - (BOOL)isObjectInExternalPackage:(id)a0 claimingComponent:(id *)a1 componentReadVersion:(unsigned long long *)a2; - (BOOL)isObjectWrittenInExternalPackageWithIdentifier:(long long)a0; - (void)nextComponentAndRootObjectForComponentWriteWithCompletion:(id /* block */)a0; - (unsigned long long)objectTargetType; - (unsigned long long)objectTargetTypeForComponentWriter:(id)a0; - (id)packageWriterError; - (void)persistedObjectUUIDMap:(id)a0 foundDuplicateUUID:(id)a1 firstObjectLocation:(struct TSPObjectLocation { long long x0; long long x1; })a2 secondObjectLocation:(struct TSPObjectLocation { long long x0; long long x1; })a3; - (id)persistedObjectUUIDMap:(id)a0 needsDescriptionForComponentIdentifier:(long long)a1 objectIdentifier:(long long)a2; - (void)setArchivedObjects:(id)a0 componentObjectUUIDMap:(id)a1 objectReferenceMap:(id)a2 externalStrongReferences:(id)a3 ambiguousReferences:(id)a4 externalWeakReferences:(id)a5 featureInfos:(id)a6 componentDataReferenceMap:(id)a7 forComponent:(id)a8; - (void)setDataAttributesSnapshot:(id)a0; - (void)setPackageWriterErrorIfNeeded:(id)a0; - (void)setSupportPackageWriteCoordinator:(id)a0; - (BOOL)shouldArchiveComponent:(id)a0 checkForceArchive:(BOOL)a1; - (BOOL)shouldCopyComponentOfObject:(id)a0; - (BOOL)shouldEnqueueComponent:(id)a0; - (void)stopCapturingSnapshots; - (long long)updateDelayedObjectsSetForWrittenComponentInfo:(struct WrittenComponentInfo { id x0; id x1; BOOL x2; BOOL x3; id x4; BOOL x5; BOOL x6; BOOL x7; id x8; id x9; BOOL x10; unsigned char x11; long long x12; unsigned long long x13; unsigned long long x14; unsigned long long x15; unsigned long long x16; BOOL x17; id x18; id x19; id x20; id x21; id x22; id x23; id x24; id x25; } *)a0 componentIdentifier:(long long)a1 withObject:(id)a2 canDelayObjects:(BOOL)a3; - (void)updateExternalReferencesForCopiedComponent:(id)a0; - (void)updateObjectContextForSuccessfulSaveWithPackageWriter:(id)a0 packageURL:(id)a1 allDataIdentifiers:(id)a2; - (BOOL)wasComponentCopied:(long long)a0; - (BOOL)wasObjectPersistedWithIdentifier:(long long)a0; - (void)willModifyObject:(id)a0 options:(unsigned long long)a1; - (void)writeComponent:(id)a0 rootObjectOrNil:(id)a1 forceArchive:(BOOL)a2 withPackageWriter:(id)a3; - (void)writeExternalReferences:(id)a0 andUpdateLazyReferences:(id)a1 withPackageWriter:(id)a2 forComponent:(id)a3 locator:(id)a4; - (void)writeRemainingComponentsWithPackageWriter:(id)a0 completionQueue:(id)a1 completion:(id /* block */)a2; - (void)writeRemainingRootObjectsAndRelatedComponents:(id)a0 withPackageWriter:(id)a1 completionQueue:(id)a2 completion:(id /* block */)a3; - (void)writeRootObject:(id)a0 withPackageWriter:(id)a1 saveOperationState:(id)a2 completionQueue:(id)a3 completion:(id /* block */)a4; - (unsigned long long)writeRootObject:(id)a0 withPackageWriter:(id)a1 saveOperationState:(id)a2 error:(id *)a3; - (void)writeRootObjectAndRelatedComponents:(id)a0 withPackageWriter:(id)a1 completionQueue:(id)a2 completion:(id /* block */)a3; - (const void *)writtenComponents; @end