@class TSCECalculationEngine, TSTCellRangeCache, NSString, TSTFormulaStore, TSTTableModel, TSTMergeChangeDistributor; @interface TSTMergeOwner : NSObject @property (retain, nonatomic) TSTCellRangeCache *mergeRangeCache; @property (nonatomic) BOOL mergeCacheLoaded; @property (readonly, weak, nonatomic) TSTTableModel *tableModel; @property (weak, nonatomic) TSCECalculationEngine *calculationEngine; @property (retain, nonatomic) TSTFormulaStore *formulaStore; @property (retain, nonatomic) TSTMergeChangeDistributor *mergeChangeDistributor; @property (readonly, nonatomic) unsigned long long count; @property (readonly, nonatomic) BOOL isEmpty; @property (nonatomic) struct TSKUIDStruct { unsigned long long _lower; unsigned long long _upper; } ownerUID; @property (readonly, nonatomic) struct unordered_map, std::equal_to, std::allocator>> { 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_; } mergeOriginsMap; @property (readonly, nonatomic) struct unordered_map, std::equal_to, std::allocator>> { 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_; } reverseOriginsMap; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (struct vector> { struct TSUCellRect *x0; struct TSUCellRect *x1; struct __compressed_pair> { struct TSUCellRect *x0; } x2; })mergeListFromModelMergeList:(const void *)a0; - (id)init; - (BOOL)find:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (id).cxx_construct; - (void).cxx_destruct; - (long long)evaluationMode; - (BOOL)hasMergeRanges; - (id)initWithTableModel:(id)a0; - (struct vector> { struct TSUModelCellRect *x0; struct TSUModelCellRect *x1; struct __compressed_pair> { struct TSUModelCellRect *x0; } x2; })mergeRanges; - (id)mergedGridIndicesForDimension:(long long)a0; - (void)saveToArchive:(void *)a0 archiver:(id)a1; - (void)invalidateForCalcEngine:(id)a0; - (id)linkedResolver; - (struct TSCERecalculationState { unsigned char x0; })multiEvaluateFormulasAt:(const void *)a0 withCalcEngine:(id)a1 recalcOptions:(struct TSCERecalculationState { unsigned char x0; })a2; - (unsigned short)ownerKind; - (void)writeResultsForCalcEngine:(id)a0; - (unsigned long long)markForRollback; - (void)resetMergeCache; - (void)rollbackToMark:(unsigned long long)a0; - (id)allMergesAsString; - (struct vector> { struct TSUModelCellRect *x0; struct TSUModelCellRect *x1; struct __compressed_pair> { struct TSUModelCellRect *x0; } x2; })allValidMergesForMergeList:(const void *)a0; - (void)assertCollaborationConvergence; - (void)clearAllMergeRanges; - (void)commitRewritingTransaction; - (void)enumerateMergeFormulasUsingBlock:(id /* block */)a0; - (void)enumerateMergesIntersectingBaseCellRegion:(id)a0 usingBlock:(id /* block */)a1; - (struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })expandBaseCellRectToCoverMergedCells:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (id)expandBaseCellRegionToCoverMergedCells:(id)a0; - (BOOL)hasMergeRangeSpanningRowsForBaseCellRect:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (BOOL)hasMergeRangesIntersectingBaseCellRect:(const struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; } *)a0; - (BOOL)hasMergeRangesIntersectingBaseCellRegion:(id)a0; - (BOOL)hasRangeSpanningRowsForCellRange:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (BOOL)hasRangeSpanningRowsForCellRegion:(id)a0; - (id)initWithArchive:(const void *)a0 unarchiver:(id)a1 forTableModel:(id)a2; - (id)initWithTableModel:(id)a0 ownerUID:(const struct TSKUIDStruct { unsigned long long x0; unsigned long long x1; } *)a1; - (BOOL)insertBaseMergeRange:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (BOOL)insertBaseMergeRangeRemovingOverlaps:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (BOOL)isValidMergeRange:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (void)loadMergeCache; - (id)mergeActionForBaseCellRegion:(id)a0; - (id)mergeActionForBaseCellRegion:(id)a0 nonOriginPartialsOnly:(BOOL)a1; - (id)mergeIndexesForBaseCellRegion:(id)a0; - (id)mergeIndexesForRange:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })mergeOriginForBaseCellCoord:(struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })a0; - (struct vector> { struct TSUModelCellRect *x0; struct TSUModelCellRect *x1; struct __compressed_pair> { struct TSUModelCellRect *x0; } x2; })mergeRangesAndCrumbsIntersectingBaseCellRect:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (struct vector> { struct TSUModelCellRect *x0; struct TSUModelCellRect *x1; struct __compressed_pair> { struct TSUModelCellRect *x0; } x2; })mergeRangesIntersectingBaseCellRect:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (struct vector> { struct TSUModelCellRect *x0; struct TSUModelCellRect *x1; struct __compressed_pair> { struct TSUModelCellRect *x0; } x2; })mergeRangesIntersectingBaseCellRegion:(id)a0; - (BOOL)mergeRangesPartiallyIntersectBaseCellRect:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (BOOL)mergeRangesPartiallyIntersectBaseCellRegion:(id)a0; - (struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })mergedRangeForBaseCellCoord:(struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })a0; - (void)openRewritingTransaction; - (void)p_dirtyCellsForMerge:(const struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; } *)a0; - (void)p_enumerateMergesUsingBlock:(id /* block */)a0; - (struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })p_growRangeFrom:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0 toDesired:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a1; - (id)p_growReturningInverseForAction:(id)a0 formulaReplacer:(id)a1; - (void)p_moveCellFromCellCoord:(struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })a0 toCellCoord:(struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })a1; - (id)p_shrinkMergesAtIndexes:(id)a0 intersectedByBaseRegion:(id)a1 formulaReplacer:(id)a2; - (id)p_shrinkReturningInverseForAction:(id)a0 formulaReplacer:(id)a1; - (void)p_updateOriginMapWithSourceCellCoord:(struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })a0 destCellCoord:(struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })a1; - (id)performActionReturningInverse:(id)a0 formulaReplacer:(id)a1; - (int)registerWithCalcEngine:(id)a0 baseOwnerUID:(const struct TSKUIDStruct { unsigned long long x0; unsigned long long x1; } *)a1; - (void)reloadMergeCacheForIndexes:(id)a0; - (void)remapTableUIDsInFormulasWithMap:(const void *)a0 calcEngine:(id)a1; - (void)removeBaseMergeRange:(struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })a0; - (id)removeReturningInverseForBaseCellRegion:(id)a0; - (void)resetMergeOriginMap; - (void)rewriteMergesForInsertedRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a0 uids:(const void *)a1 isRows:(BOOL)a2; - (void)rewriteMergesForRemovedRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a0 uids:(const void *)a1 isRows:(BOOL)a2; - (struct TSUModelCellRect { struct TSUCellRect { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; struct { unsigned int x0; unsigned int x1; } x1; } x0; })rewroteFormula:(id)a0 atCoordinate:(struct TSUModelCellCoord { struct TSUCellCoord { unsigned int x0; unsigned short x1; BOOL x2; BOOL x3; } x0; })a1 withRewriteSpec:(id)a2 isUndo:(BOOL)a3; - (id)shrinkReturningInverseForBaseCellRegion:(id)a0; - (id)shrinkReturningInverseForBaseCellRegion:(id)a0 formulaReplacer:(id)a1; - (void)unregisterFromCalcEngine; @end