@class NSDate, PXScrollViewController, PXMemoriesSpec, PXMemoriesFeedDataSourceManager, PXMemoriesSpecManager, PXSectionedObjectReference, PXTilingController, PXMemoriesFeedTransitionAnimationCoordinator, PXExtendedTraitCollection, PXMemoriesFeedTilingLayout, NSString, PHPhotoLibrary, PXMemoriesFeedScrollFilter, PXSectionedLayoutEngine, PXSectionedSelectionManager; @protocol PXMemoriesFeedViewControllerHelperDelegate, PXViewControllerEventTracker; @interface PXMemoriesFeedViewControllerHelper : PXObservable <PXSectionedDataSourceManagerObserver, PXSectionedLayoutEngineDelegate, PXMemoriesFeedScrollFilterDelegate, PXTilingControllerScrollDelegate, PXTilingControllerTransitionDelegate, PXMemoriesFeedTilingLayoutDelegate> { struct { BOOL layoutEngine; } _needsToUpdate; struct { BOOL feedIsVisible; BOOL reloadedTileKindsOnObjectChanged; BOOL configureMetrics; } _delegateRespondsTo; id _refreshResetNotification; BOOL _hasAppeared; BOOL _hasKickedOffBatchGeneration; } @property (readonly, nonatomic) id<PXViewControllerEventTracker> eventTracker; @property (retain, nonatomic, setter=_setLastUserMemoryGenerationRequestDate:) NSDate *_lastUserMemoryGenerationRequestDate; @property (retain, nonatomic, setter=_setMemoryReferenceToScrollToVisible:) PXSectionedObjectReference *_memoryReferenceToScrollToVisible; @property (retain, nonatomic, setter=_setAnchorMemoryReference:) PXSectionedObjectReference *anchorMemoryReference; @property (nonatomic, setter=_setAnchorMemoryOrigin:) struct CGPoint { double x; double y; } anchorMemoryOrigin; @property (readonly, nonatomic) PXSectionedLayoutEngine *_layoutEngine; @property (readonly, nonatomic) PXMemoriesFeedScrollFilter *_scrollFilter; @property (retain, nonatomic, setter=_setSpec:) PXMemoriesSpec *_spec; @property (readonly, nonatomic) PXMemoriesFeedTransitionAnimationCoordinator *_transitionAnimationCoordinator; @property (nonatomic, setter=_setRefreshRetryCount:) long long _refreshRetryCount; @property (nonatomic, getter=_isRequestingNewMemories, setter=_setRequestingNewMemories:) BOOL _requestingNewMemories; @property (copy, nonatomic, setter=_setNewMemoriesRequestCompletion:) id /* block */ _newMemoriesRequestCompletion; @property (readonly, nonatomic) PXTilingController *tilingController; @property (readonly, nonatomic) PXMemoriesFeedDataSourceManager *dataSourceManager; @property (readonly, nonatomic) PXMemoriesSpecManager *specManager; @property (readonly, nonatomic) PXSectionedSelectionManager *selectionManager; @property (readonly, nonatomic) PHPhotoLibrary *photoLibrary; @property (readonly, nonatomic) PXScrollViewController *scrollViewController; @property (readonly, nonatomic) PXExtendedTraitCollection *traitCollection; @property (weak, nonatomic) id<PXMemoriesFeedViewControllerHelperDelegate> delegate; @property (readonly, nonatomic) PXMemoriesFeedTilingLayout *currentLayout; @property (readonly, nonatomic) PXMemoriesFeedTilingLayout *targetLayout; @property (retain, nonatomic) PXSectionedObjectReference *highlightedMemoryReference; @property (retain, nonatomic) PXSectionedObjectReference *activatedMemoryReference; @property (retain, nonatomic) PXSectionedObjectReference *lastActionPresentationMemoryReference; @property (retain, nonatomic, setter=setScrollTargetMemoryUUID:) NSString *scrollTargetMemoryUUID; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)_configureLayout:(id)a0; - (void)observable:(id)a0 didChange:(unsigned long long)a1 context:(void *)a2; - (id)sectionedDataSourceManagerInterestingObjectReferences:(id)a0; - (BOOL)_needsUpdate; - (id)mutableChangeObject; - (void)_handleDataSourceChange; - (void)_updateIfNeeded; - (id)initWithPhotoLibrary:(id)a0; - (void).cxx_destruct; - (void)prepare; - (id)_memoryReferenceInsertedOnChangeToDataSource:(id)a0 withChangeDetails:(id)a1; - (void)didChangeTilingControllerLayout; - (void)feedViewControllerDidDisappear:(id)a0; - (BOOL)canRequestNewMemoriesForReason:(unsigned long long)a0; - (void)_configureMetrics:(id)a0; - (void)_enumerateInsertedItemsInChangeDetails:(id)a0 withDataSource:(id)a1 usingBlock:(id /* block */)a2; - (void)_handleChangeFromDataSource:(id)a0 toDataSource:(id)a1 withChangeDetails:(id)a2; - (void)_handleFinishedRequestingNewMemoriesWithSuccess:(BOOL)a0 reason:(unsigned long long)a1 error:(id)a2; - (void)_handleNewLayoutSnapshot:(id)a0; - (void)_handleRefreshCompletionWithResultInformation:(id)a0 reason:(unsigned long long)a1 error:(id)a2; - (void)_handleTraitCollectionChange:(unsigned long long)a0; - (void)_invalidateLayoutEngine; - (void)_scrollToTargetMemoryUUIDWhenReady:(id)a0; - (void)_startRefreshForReason:(unsigned long long)a0; - (void)_updateHighlightedIndexPathInLayout; - (void)_updateHighlightedIndexPathInLayout:(id)a0; - (void)_updateLayoutEngineIfNeeded; - (void)_updateSelectedIndexPathsInLayout; - (void)_updateSelectedIndexPathsInLayout:(id)a0; - (BOOL)canRequestNewMemories; - (void)feedViewControllerDidAppear:(id)a0 shouldUpdateNotifications:(BOOL)a1; - (void)feedViewControllerWillLayoutSubviews; - (struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })indexPathForMemoryInScrollViewAtPoint:(struct CGPoint { double x0; double x1; })a0; - (struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })indexPathForMemoryObjectReference:(id)a0; - (id)initWithScrollViewController:(id)a0 photoLibrary:(id)a1 traitCollection:(id)a2 memoriesStyle:(unsigned long long)a3 tilingControllerConfigurationBlock:(id /* block */)a4; - (id)initWithScrollViewController:(id)a0 photoLibrary:(id)a1 traitCollection:(id)a2 tilingControllerConfigurationBlock:(id /* block */)a3; - (void)invalidateMetrics; - (void)layoutEngine:(id)a0 willGenerateLayoutWithGenerator:(id)a1 forSection:(unsigned long long)a2; - (void)layoutEngineDidUpdateLayoutSnapshot:(id)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })memoriesFeedTilingLayout:(id)a0 contentsRectForItemAtIndexPath:(struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })a1 forAspectRatio:(double)a2; - (id)memoriesFeedTilingLayout:(id)a0 titleFontNameForItemAtIndexPath:(struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })a1; - (id)memoryInfoAtIndexPath:(struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })a0; - (id)memoryInfoForMemoryObjectReference:(id)a0; - (id)memoryInfoInScrollViewAtPoint:(struct CGPoint { double x0; double x1; })a0; - (id)memoryObjectReferenceInScrollViewAtPoint:(struct CGPoint { double x0; double x1; })a0; - (void)requestNewMemoriesForReason:(unsigned long long)a0 withCompletion:(id /* block */)a1; - (void)requestNewMemoriesWithCompletion:(id /* block */)a0; - (void)saveAnchorMemory; - (void)scrollFilterShouldRequestAdditionalContent:(id)a0; - (void)scrollMemoryReferenceToVisible:(id)a0 animated:(BOOL)a1; - (struct CGPoint { double x0; double x1; })tilingController:(id)a0 initialVisibleOriginForLayout:(id)a1; - (void)tilingController:(id)a0 prepareForChange:(id)a1; - (struct CGPoint { double x0; double x1; })tilingController:(id)a0 targetVisibleOriginForLayout:(id)a1 proposedVisibleOrigin:(struct CGPoint { double x0; double x1; })a2; - (id)tilingController:(id)a0 tileIdentifierConverterForChange:(id)a1; - (id)tilingController:(id)a0 transitionAnimationCoordinatorForChange:(id)a1; @end