@class NSMutableIndexSet, SFUnifiedTabBarMetrics, NSIndexSet, NSArray, UIScrollView, SFUnifiedBarItem, SFUnifiedTabBarItemArrangement; @interface SFUnifiedTabBarLayout : NSObject { UIScrollView *_scrollView; BOOL _flipped; BOOL _shouldSlideInNewTrailingTab; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _visibleRectOverride; struct CGSize { double width; double height; } _lastLayoutSize; struct CGPoint { double x; double y; } _lastLayoutMidpoint; struct CGPoint { double x; double y; } _lastLayoutContentOffset; double _activeItemWidth; double _itemWidth; double _squishedActiveItemWidth; double _leadingItemOffset; double _pinnedItemsWidth; BOOL _standalone; double _itemSpacing; double _transitioningItemScale; double _scrollSlowingInset; NSMutableIndexSet *_visibleItemIndexes; NSMutableIndexSet *_occludedItemIndexes; BOOL _expandedItemIsCentered; double _offsetForCenteringExpandedItem; double _activeItemWidthWhenNotExpanded; } @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } _safeArea; @property (readonly, nonatomic) SFUnifiedTabBarItemArrangement *itemArrangement; @property (retain, nonatomic) SFUnifiedTabBarMetrics *barMetrics; @property (nonatomic) struct CGPoint { double x; double y; } midpointForCenteredContent; @property (readonly, nonatomic) BOOL activeItemIsSquished; @property (readonly, nonatomic) BOOL contentIsCentered; @property (readonly, nonatomic) BOOL centersActiveItemWhenExpanded; @property (readonly, nonatomic) BOOL horizontalSpaceIsExtremelyConstrained; @property (readonly, nonatomic) BOOL isCurrentlyScrollable; @property (readonly, nonatomic) struct CGSize { double width; double height; } contentSize; @property (readonly, nonatomic) NSIndexSet *visibleItemIndexes; @property (readonly, nonatomic) NSArray *visibleItems; @property (readonly, nonatomic) unsigned long long indexOfCenterItem; @property (readonly, nonatomic) unsigned long long maximumNumberOfVisibleItems; @property (retain, nonatomic) SFUnifiedBarItem *hoveringItem; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } pinnedItemsSeparatorFrame; @property (readonly, nonatomic) double pinnedItemsSeparatorOpacity; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } pinnedItemDropArea; @property (readonly, nonatomic) struct UIEdgeInsets { double x0; double x1; double x2; double x3; } autoScrollTouchInsets; + (unsigned long long)pinnedItemLimitForItemArrangement:(id)a0 tabBarWidth:(double)a1 barMetrics:(id)a2; - (void)_updateContentSize; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })frameForItem:(id)a0; - (void).cxx_destruct; - (id)itemAtPoint:(struct CGPoint { double x0; double x1; })a0; - (void)updateItemSizes; - (id)itemClosestToPoint:(struct CGPoint { double x0; double x1; })a0 passingTest:(id /* block */)a1; - (BOOL)_activeItemIsPinned; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_activeItemPinnableArea; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_adjustedActiveItemFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 pinActiveItem:(BOOL)a1 squishActiveItem:(BOOL)a2 centerExpandedItem:(BOOL)a3; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_contentArea; - (struct CGPoint { double x0; double x1; })_contentOffsetForScrollingToRegionWithMinX:(double)a0 maxX:(double)a1 insets:(struct UIEdgeInsets { double x0; double x1; double x2; double x3; })a2; - (void)_determineOffsetForCenteringExpandedItem; - (double)_distanceToEdgeForItemAtIndex:(unsigned long long)a0 withFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 activeItemFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2 occludedEdge:(unsigned long long *)a3; - (double)_effectiveMinimumActiveItemWidth; - (void)_enumerateFramesForItemsAtIndexes:(id)a0 pinActiveItem:(BOOL)a1 usingBlock:(id /* block */)a2; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_frameForItem:(id)a0 withOffset:(double)a1 pinActiveItem:(BOOL)a2 squishActiveItem:(BOOL)a3 centerExpandedItem:(BOOL)a4; - (unsigned long long)_indexOfItemClosestToPoint:(struct CGPoint { double x0; double x1; })a0 passingTest:(id /* block */)a1; - (double)_insetToRevealNextItem; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })_insetsForActiveItemPinnableArea; - (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })_insetsForScrollingToItemAtIndex:(unsigned long long)a0; - (BOOL)_itemAtIndexIsPinned:(unsigned long long)a0; - (double)_maximumActiveItemWidthForCenteringExpandedItem; - (double)_maximumItemSpacing; - (struct CGPoint { double x0; double x1; })_midpointForCenteredContentInScrollView; - (double)_minimumHorizontalOffsetForOccludedItems; - (double)_minimumItemSpacing; - (double)_offsetForItemAtIndex:(unsigned long long)a0; - (double)_offsetForItemAtIndex:(unsigned long long)a0 inItems:(id)a1; - (double)_offsetForPinnedItemAtIndex:(unsigned long long)a0; - (double)_pinnedActiveItemOffsetSquishingActiveItem:(BOOL)a0 activeItemFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } *)a1; - (struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; double x1; double x2; double x3; BOOL x4; BOOL x5; double x6; })_scrollSlowingLayoutInfoForItemAtIndex:(unsigned long long)a0 withLayoutInfo:(struct { struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x0; double x1; double x2; double x3; BOOL x4; BOOL x5; double x6; })a1 activeItemFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_slideFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 forItemAtIndex:(unsigned long long)a1 pinnedActiveItemOffset:(double)a2; - (double)_spacingAfterItem:(id)a0; - (double)_spacingBeforeItem:(id)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_unpinnedFrameForItemAtIndex:(unsigned long long)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_unpinnedItemSafeArea; - (void)_updateItemWidths; - (void)_updateSquishedActiveItemWidth; - (double)_widthForItem:(id)a0; - (double)_zPositionForItem:(id)a0; - (struct CGPoint { double x0; double x1; })contentOffsetForScrollingToDroppingItems; - (struct CGPoint { double x0; double x1; })contentOffsetForScrollingToItemAtIndex:(unsigned long long)a0; - (void)enumerateFinalLayoutForDisappearingItemsAtIndexes:(id)a0 withDistanceScrolled:(double)a1 usingBlock:(id /* block */)a2; - (void)enumerateInitialLayoutForAppearingItemsAtIndexes:(id)a0 withDistanceToScroll:(double)a1 usingBlock:(id /* block */)a2; - (void)enumerateLayoutForItemsAtIndexes:(id)a0 usingBlock:(id /* block */)a1; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })frameForPreviewingItem:(id)a0 pinned:(BOOL)a1; - (id)indexesOfItemsVisibleInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (id)initWithItemArrangement:(id)a0 configuration:(id)a1; - (id)itemsVisibleInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0; - (void)setItemAtIndex:(unsigned long long)a0 isOccluded:(BOOL)a1; - (void)setItemAtIndex:(unsigned long long)a0 isVisible:(BOOL)a1; - (void)updateItemSizesIfNeeded; @end