luxlabs header browser preview


@class NSMutableDictionary, UICollectionViewLayoutAttributes, NSIndexPath, PUSectionedGridLayoutData, NSDictionary, PULayoutSampledSectioning, NSString, NSSet, PUSectionedGridLayoutInvalidationContext, NSIndexSet, NSPointerArray, PULayoutAnimationsHelper, NSArray, NSNumber, UICollectionViewLayout;
@protocol PUSectionedGridLayoutDelegate, PUCollectionViewLayoutTransitioningDelegate;

@interface PUSectionedGridLayout : UICollectionViewLayout <PUReorderableLayout, PUPhotosGridTransitioningLayout, PUCollectionViewLayoutDelegating, PUGridLayoutProtocol> {
    BOOL _layoutDataIsValid;
    BOOL _sectioningDataIsValid;
    BOOL _samplingDataIsValid;
    struct CGSize { double width; double height; } _contentSize;
    UICollectionViewLayoutAttributes *_globalFooterAttributes;
    NSSet *_supplementaryViewKinds;
    long long _totalRealSections;
    long long _totalVisualSections;
    NSPointerArray *_realToVisualSections;
    NSArray *_visualToRealSectionIndexes;
    NSPointerArray *_samplingHelpersByVisualSection;
    double *_visualSectionStartYs;
    long long *_realSectionItemCounts;
    long long *_visualSectionMaxRows;
    NSArray *_cachedNonHeaderLayoutAttributesInRect;
    struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _cachedLayoutAttributesLastKnownRect;
    NSIndexSet *_deletedSections;
    NSSet *_deletedItemIndexPaths;
    BOOL _processingCollectionViewUpdates;
    NSIndexPath *_viewSizeTransitionAnchorItem;
    double _viewSizeTransitionAnchorItemNormalizedYOffset;
    BOOL _floatingHeadersLayoutIsValid;
    BOOL _hasFloatingHeaders;
    long long _floatingHeaderVisualSectionIndex;
    PUSectionedGridLayoutInvalidationContext *_cachedFloatingHeaderInvalidationContext;
    long long _cachedFloatingHeaderInvalidationContextNewVisualSection;
    NSDictionary *_transitionSectionInfosByTransitionSection;
    NSDictionary *_transitionSectionInfosByVisualSection;
    NSMutableDictionary *_axLargeTextSectionHeaderHeightByVisualSection;
    PUSectionedGridLayoutData *_layoutData;
    BOOL _isPreparingLayout;
    BOOL _delegateSupportsGroupedSections;
    BOOL _delegateSupportsAnchorItemForContentOffset;
    BOOL _delegateSupportsTargetContentOffset;
    BOOL _delegateSupportsTransitionAutoContentOffsetEnabled;
    BOOL _delegateSupportsFinalContentInsetForCurrentContentInset;
    BOOL _delegateSupportsDidInvalidateWithContext;
    BOOL _delegateSupportsAspectRatioForItemAtIndexPath;
    BOOL _delegateSupportsSectionHeaderHeightForVisualSection;
    BOOL _delegateSupportsAccessibilitySectionHeaderHeightForVisualSection;
    BOOL _delegateSupportsWillPrepareLayout;
    BOOL _usesRenderedStrips;
    NSIndexPath *_reorderingSourceIndexPath;
    NSIndexPath *_reorderingTargetIndexPath;
    NSIndexPath *_reorderingInsertedIndexPath;
    BOOL _transitionApplyingEffectiveContentOrigin;
    PULayoutAnimationsHelper *_transitionAnimationsHelper;
    id /* block */ _transitionAnimationEndCleanupBlock;
}

@property (nonatomic, setter=_setColumnsPerRow:) long long columnsPerRow;
@property (weak, nonatomic) id<PUSectionedGridLayoutDelegate> delegate;
@property (readonly, nonatomic) NSIndexPath *globalHeaderIndexPath;
@property (readonly, nonatomic) UICollectionViewLayoutAttributes *globalHeaderAttributes;
@property (readonly, nonatomic) NSIndexPath *globalFooterIndexPath;
@property (readonly, nonatomic) PULayoutSampledSectioning *layoutSectioning;
@property (nonatomic) struct CGSize { double width; double height; } interItemSpacing;
@property (nonatomic) struct CGSize { double width; double height; } itemSize;
@property (nonatomic) double sectionBottomPadding;
@property (nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } sectionContentInset;
@property (nonatomic) BOOL floatingSectionHeadersEnabled;
@property (nonatomic) double globalHeaderHeight;
@property (nonatomic) double globalFooterHeight;
@property (retain, nonatomic) NSNumber *cachedDefaultGlobalFooterHeight;
@property (nonatomic) BOOL dynamicLayoutEnabled;
@property (copy, nonatomic) NSString *renderedStripsElementKind;
@property (nonatomic) long long cropType;
@property (nonatomic) double cropAmount;
@property (nonatomic) BOOL usesRenderedStripTopExtendersForTransitions;
@property (nonatomic) BOOL usesAspectItems;
@property (nonatomic) struct CGPoint { double x; double y; } transitionEffectiveContentOrigin;
@property (readonly, nonatomic) struct CGSize { double x0; double x1; } transitionActualContentSize;
@property (nonatomic) BOOL transitionIsAnimated;
@property (readonly, nonatomic) long long transitionAnchorColumnOffset;
@property (copy, nonatomic) NSIndexPath *transitionExplicitAnchorItemIndexPath;
@property (nonatomic) BOOL transitionAnchorShiftsColumns;
@property (readonly, nonatomic) long long itemsPerRow;
@property (readonly, nonatomic) long long numberOfVisualSections;
@property (readonly, copy, nonatomic) NSIndexPath *transitionFirstVisibleRowVisualPath;
@property (readonly, copy, nonatomic) NSIndexPath *transitionLastVisibleRowVisualPath;
@property (readonly, nonatomic) UICollectionViewLayout *transitionLayout;
@property (nonatomic) struct CGPoint { double x; double y; } transitionStartContentOffset;
@property (readonly, nonatomic) struct CGPoint { double x; double y; } transitionEndContentOffset;
@property (nonatomic) BOOL transitionZoomingOut;
@property (readonly, nonatomic) BOOL transitionIsAppearing;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;
@property (weak, nonatomic) id<PUCollectionViewLayoutTransitioningDelegate> transitioningDelegate;
@property (nonatomic) double globalTopPadding;
@property (nonatomic) double globalBottomPadding;
@property (copy, nonatomic) NSSet *hiddenItemIndexPaths;
@property (copy, nonatomic) NSString *sectionHeaderElementKind;
@property (nonatomic) BOOL sectionHeadersEnabled;
@property (nonatomic) double sectionTopPadding;

+ (Class)invalidationContextClass;

- (struct CGSize { double x0; double x1; })collectionViewContentSize;
- (BOOL)shouldInvalidateLayoutForBoundsChange:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0;
- (id)invalidationContextForBoundsChange:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0;
- (void)invalidateLayoutWithContext:(id)a0;
- (void)prepareLayout;
- (id)layoutAttributesForSupplementaryViewOfKind:(id)a0 atIndexPath:(id)a1;
- (id)layoutAttributesForElementsInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0;
- (id)finalLayoutAttributesForDisappearingItemAtIndexPath:(id)a0;
- (id)init;
- (id)layoutAttributesForItemAtIndexPath:(id)a0;
- (void)dealloc;
- (void)endReordering;
- (id)initialLayoutAttributesForAppearingItemAtIndexPath:(id)a0;
- (void).cxx_destruct;
- (void)updateReorderingTargetIndexPath:(id)a0;
- (void)prepareForTransitionFromLayout:(id)a0;
- (void)prepareForAnimatedBoundsChange:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0;
- (id /* block */)_animationForReusableView:(id)a0 toLayoutAttributes:(id)a1 type:(unsigned long long)a2;
- (void)_didFinishLayoutTransitionAnimations:(BOOL)a0;
- (void)_invalidateLayoutWithContext:(id)a0;
- (BOOL)_supportsAdvancedTransitionAnimations;
- (id)finalLayoutAttributesForDisappearingSupplementaryElementOfKind:(id)a0 atIndexPath:(id)a1;
- (void)finalizeAnimatedBoundsChange;
- (void)finalizeCollectionViewUpdates;
- (void)finalizeLayoutTransition;
- (id)initialLayoutAttributesForAppearingSupplementaryElementOfKind:(id)a0 atIndexPath:(id)a1;
- (void)prepareForCollectionViewUpdates:(id)a0;
- (void)prepareForTransitionToLayout:(id)a0;
- (struct CGPoint { double x0; double x1; })targetContentOffsetForProposedContentOffset:(struct CGPoint { double x0; double x1; })a0;
- (BOOL)_hasAccessibilityLargeText;
- (void)_prepareLayoutIfNeeded;
- (struct CGPoint { double x0; double x1; })_visibleRectOriginForScrollOffset:(struct CGPoint { double x0; double x1; })a0;
- (void)beginReorderingItemAtIndexPath:(id)a0;
- (long long)numberOfRealItemsInRealSection:(long long)a0;
- (id)prepareForViewTransitionToSize:(struct CGSize { double x0; double x1; })a0;
- (id)pu_layoutAttributesForElementClosestToPoint:(struct CGPoint { double x0; double x1; })a0 inRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 passingTest:(id /* block */)a2;
- (void)_adjustGridTransitionLayoutAttributes:(id)a0 toOrFromGridLayout:(id)a1 outTargetRowExists:(BOOL *)a2 isAppearing:(BOOL)a3;
- (void)_adjustItemLayoutAttributesForReordering:(id)a0;
- (void)_adjustRenderedStripLayoutAttributes:(id)a0 toOrFromGridLayout:(id)a1 isAppearing:(BOOL)a2;
- (void)_adjustSectionHeaderLayoutAttributes:(id)a0 toOrFromGridLayout:(id)a1 isAppearing:(BOOL)a2;
- (void)_clearLayoutCaches;
- (void)_clearRetainedCaches;
- (void)_clearSamplingCaches;
- (void)_clearSectioningCaches;
- (struct CGPoint { double x0; double x1; })_currentVisibleRectOrigin;
- (double)_delegateAccessibilitySectionHeaderHeightForSection:(long long)a0;
- (void)_ensureRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 inData:(id)a1 outDeltaOriginY:(double *)a2;
- (BOOL)_ensureUpdatedLayoutData:(id)a0 isForward:(BOOL)a1 outDeltaOriginY:(double *)a2;
- (void)_ensureVisualSection:(long long)a0 inData:(id)a1;
- (void)_enumerateVisualItemFramesInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 usingBlock:(id /* block */)a1;
- (struct UIEdgeInsets { double x0; double x1; double x2; double x3; })_finalContentInset;
- (double)_finalSectionHeaderHeightForSection:(long long)a0;
- (long long)_firstVisualItemIndexForRenderedStripIndex:(long long)a0;
- (long long)_floatingHeaderVisualSectionForVisibleOrigin:(struct CGPoint { double x0; double x1; })a0;
- (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_frameByAdjustingOffScreenEnteringFrame:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 forRowAtVisualIndexPath:(struct PUSimpleIndexPath { long long x0; long long x1; })a1 transitionSectionInfo:(id)a2 toOrFromGridLayout:(id)a3 isAppearing:(BOOL)a4;
- (id)_gridTransitionLayout;
- (double)_heightOfSectionAtVisualIndex:(long long)a0;
- (void)_invalidateFloatingHeadersLayout;
- (void)_invalidateSupplementaryViewKinds;
- (BOOL)_isSupportedSupplementaryViewKind:(id)a0;
- (BOOL)_isTransitionForeignSupplementaryViewKind:(id)a0;
- (struct PUSimpleIndexPath { long long x0; long long x1; })_itemVisualIndexPathAtPoint:(struct CGPoint { double x0; double x1; })a0;
- (id)_layoutAttributesForItemAtVisualIndexPath:(struct PUSimpleIndexPath { long long x0; long long x1; })a0 realIndexPath:(id)a1 isMainRealItem:(BOOL)a2;
- (id)_layoutAttributesForSupplementaryViewOfKind:(id)a0 forVisualSection:(long long)a1 supplementaryViewIndex:(long long)a2;
- (long long)_nextVisualSectionForSupplementaryViewSection:(long long)a0 forward:(BOOL)a1;
- (void)_prepareFloatingHeadersLayoutIfNeeded;
- (void)_prepareForTransitionFromStackedLayout:(id)a0;
- (void)_prepareForTransitionToOrFromGridLayout:(id)a0 isAppearing:(BOOL)a1;
- (void)_prepareSamplingDataIfNeeded;
- (void)_prepareSectioningDataIfNeeded;
- (id)_realItemIndexPathClosestToPoint:(struct CGPoint { double x0; double x1; })a0 inRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 withTest:(id /* block */)a2;
- (long long)_renderedStripIndexForSectionRowIndex:(long long)a0;
- (double)_sectionHeaderHeightDeltaForSection:(long long)a0;
- (double)_sectionWidth;
- (double)_startYOfContentAtVisualSectionIndex:(long long)a0;
- (double)_startYOfContentAtVisualSectionIndexWithDynamicLayout:(long long)a0;
- (double)_startYOfVisualSectionAtIndex:(long long)a0;
- (id)_supplementaryViewKinds;
- (struct CGPoint { double x0; double x1; })_targetContentOffsetWithAnchorItemIndexPath:(id)a0 isRotation:(BOOL)a1 orTransitionFromLayout:(id)a2 keepAnchorStable:(BOOL)a3;
- (struct PUGridCoordinates { long long x0; long long x1; })_targetTransitionGridCoordsForGridCoords:(struct PUGridCoordinates { long long x0; long long x1; })a0 atVisualSection:(long long)a1 transitionSectionInfo:(id)a2;
- (struct CATransform3D { double x0; double x1; double x2; double x3; double x4; double x5; double x6; double x7; double x8; double x9; double x10; double x11; double x12; double x13; double x14; double x15; })_transformToConvertRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 intoRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 referenceCenter:(struct CGPoint { double x0; double x1; })a2;
- (void)_updateHasFloatingHeaders;
- (struct PUSimpleIndexPath { long long x0; long long x1; })_visualIndexPathForTransitionCoordinates:(struct PUGridCoordinates { long long x0; long long x1; })a0 inTransitionSection:(long long)a1;
- (struct PUSimpleIndexPath { long long x0; long long x1; })_visualRowPathForTransitionRowIndex:(long long)a0 transitionSectionInfo:(id)a1;
- (long long)_visualSectionAtPoint:(struct CGPoint { double x0; double x1; })a0;
- (BOOL)_visualSectionsMatchTransitionSectionsToOrFromLayout:(id)a0;
- (void)adjustEffectiveContentOriginForTransitionEndContentOffset:(struct CGPoint { double x0; double x1; })a0;
- (id)assetIndexPathsForElementsInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0;
- (void)beginInsertingItemAtIndexPath:(id)a0;
- (void)endInsertingItem;
- (void)enumerateItemIndexPathsForVisualSection:(long long)a0 inVisualItemRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; })a1 usingBlock:(id /* block */)a2;
- (void)enumerateRealSectionsForVisualSection:(long long)a0 usingBlock:(id /* block */)a1;
- (void)finalizeViewTransitionToSize;
- (long long)firstPreparedVisualSection;
- (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })frameForItemAtGridCoordinates:(struct PUGridCoordinates { long long x0; long long x1; })a0 inTransitionSection:(long long)a1;
- (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })frameForItemAtGridCoordinates:(struct PUGridCoordinates { long long x0; long long x1; })a0 inVisualSection:(long long)a1;
- (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })frameForItemAtGridCoordinates:(struct PUGridCoordinates { long long x0; long long x1; })a0 inVisualSection:(long long)a1 indexPath:(id)a2;
- (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })frameForSectionHeaderAtVisualSection:(long long)a0;
- (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })frameForSectionHeaderOfRealItem:(id)a0;
- (void)getVisualSectionIndex:(long long *)a0 visualItemRange:(struct _NSRange { unsigned long long x0; unsigned long long x1; } *)a1 forRenderStripAtIndexPath:(id)a2;
- (struct PUGridCoordinates { long long x0; long long x1; })gridCoordinatesInSectionForItemAtVisualIndex:(long long)a0;
- (struct PUGridCoordinates { long long x0; long long x1; })gridCoordinatesInTransitionSectionForItemAtIndexPath:(id)a0;
- (struct PUGridCoordinates { long long x0; long long x1; })gridCoordinatesInVisualSectionForItemAtIndexPath:(id)a0;
- (BOOL)hasItemAtGridCoordinates:(struct PUGridCoordinates { long long x0; long long x1; })a0 inTransitionSection:(long long)a1;
- (void)invalidateLayoutForMetricsChange;
- (void)invalidateLayoutForVerticalScroll;
- (id)itemIndexPathAtCenterOfRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0;
- (id)itemIndexPathAtPoint:(struct CGPoint { double x0; double x1; })a0;
- (id)itemIndexPathClosestToPoint:(struct CGPoint { double x0; double x1; })a0;
- (long long)lastPreparedVisualSection;
- (struct CGSize { double x0; double x1; })layoutItemSizeForColumn:(long long)a0;
- (id)mainRealIndexPathAtGridCoordinates:(struct PUGridCoordinates { long long x0; long long x1; })a0 inTransitionSection:(long long)a1;
- (long long)mainRealSectionForVisualSection:(long long)a0;
- (id)maxItemIndexPathAbovePoint:(struct CGPoint { double x0; double x1; })a0;
- (id)maxItemIndexPathLeftOfPoint:(struct CGPoint { double x0; double x1; })a0;
- (long long)maximumNumberOfItemsInVisualSection:(long long)a0 withNumberOfRealItems:(long long)a1 forSectioning:(id)a2;
- (long long)numberOfColumnsForWidth:(double)a0;
- (long long)numberOfContiguousRowsInTransitionSection:(long long)a0;
- (long long)numberOfItemsInRealSection:(long long)a0 forSectioning:(id)a1;
- (long long)numberOfRealItemsInVisualSection:(long long)a0;
- (long long)numberOfRealSections;
- (long long)numberOfRealSectionsForSectioning:(id)a0;
- (long long)numberOfRowsInVisualSection:(long long)a0;
- (long long)numberOfVisualItemsInVisualSection:(long long)a0;
- (long long)numberOfVisualSectionsForSectioning:(id)a0;
- (id)pu_debugRows;
- (id)realSectionsForVisualSection:(long long)a0 forSectioning:(id)a1;
- (id)reorderedIndexPath:(id)a0;
- (void)setIsPreparingLayout:(BOOL)a0;
- (BOOL)shouldHideVisualSection:(long long)a0;
- (id)supplementaryViewIndexPathForVisualSection:(long long)a0 supplementaryViewItemIndex:(long long)a1;
- (struct CGPoint { double x0; double x1; })targetContentOffsetForTransitionFromGridLayout:(id)a0;
- (struct CGPoint { double x0; double x1; })targetContentOffsetForViewSizeTransitionContext:(id)a0;
- (struct PUGridCoordinates { long long x0; long long x1; })targetTransitionGridCoordsForGridCoords:(struct PUGridCoordinates { long long x0; long long x1; })a0 atVisualSection:(long long)a1 outTransitionSection:(long long *)a2;
- (id)targetTransitionRealIndexPathForIndexPath:(id)a0;
- (id)transitionAnchorIndexPathForTransitionSection:(long long)a0;
- (id)transitionSectionsInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 toOrFromGridLayout:(id)a1;
- (struct PUGridCoordinates { long long x0; long long x1; })visualGridCoordsForTransitionGridCoords:(struct PUGridCoordinates { long long x0; long long x1; })a0 atTransitionSection:(long long)a1 outVisualSection:(long long *)a2;
- (long long)visualIndexForItemAtGridCoordinates:(struct PUGridCoordinates { long long x0; long long x1; })a0;
- (struct _NSRange { unsigned long long x0; unsigned long long x1; })visualRowsInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 inVisualSection:(long long)a1 totalVisualSectionRows:(long long *)a2;
- (long long)visualSectionForHeaderIndexPath:(id)a0;
- (long long)visualSectionForRealSection:(long long)a0;
- (long long)visualSectionForSupplementaryViewIndexPath:(id)a0;
- (struct _NSRange { unsigned long long x0; unsigned long long x1; })visualSectionsInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0;

@end