@class PXNumberAnimator, PXMediaProvider, PXAssetsDataSourceManager, PXUpdater, PXZoomableInlineHeadersDataSourceManager, PXSelectionSnapshot, NSString, NSSet, PXZoomablePhotosAlphaAnimator, PXLoadingStatusManager, NSArray, PXZoomablePhotosLayoutSpecManager, PXSectionedSelectionManager, PXGridInlinePlaybackController, PXAssetReference; @protocol PXPhotosPreferredAssetCropDelegate, PXZoomablePhotosUserDefaults, PXPhotosPreferredColumnCountsDelegate, PXGDisplayAssetPixelBufferSourcesProvider; @interface PXZoomablePhotosViewModel : PXObservable { BOOL _isUpdatingZoomState; PXZoomablePhotosAlphaAnimator *_alphaAnimator; long long _pendingZoomColumnIndex; BOOL _animatePendingZoom; PXNumberAnimator *_columnWidthAnimator; double _normalizedColumnWidthWhenPinchStarted; double _pinchLogValue; double _pinchLogVelocity; double _pinchLastDate; BOOL _wasPinching; BOOL _wasInteractiveZooming; unsigned long long _supportLevel; id _pauseToken; } @property (readonly, nonatomic) PXUpdater *updater; @property (nonatomic) struct { struct CGPoint { double x; double y; } normalizedScaleCenter; double scale; double scaleVelocity; long long columns; long long columnIndex; double normalizedColumnWidth; BOOL isAnimating; BOOL isInteractive; BOOL isTracking; BOOL hasBeenInitialized; long long fromColumnIndex; long long toColumnIndex; double interactiveProgress; double animatedProgress; double stickyHeaderOpacity; } zoomState; @property (retain, nonatomic) NSArray *allowedColumns; @property (readonly, nonatomic) BOOL isPerformingInitialChanges; @property (nonatomic) BOOL shouldHideSurroundingContent; @property (nonatomic) BOOL hasInlineHeadersContent; @property (readonly, nonatomic) BOOL allowDenseLevels; @property (readonly, nonatomic) PXZoomablePhotosLayoutSpecManager *specManager; @property (readonly, nonatomic) PXAssetsDataSourceManager *assetsDataSourceManager; @property (readonly, nonatomic) PXSectionedSelectionManager *selectionManager; @property (readonly, nonatomic) id userDefaults; @property (readonly, nonatomic) PXMediaProvider *mediaProvider; @property (readonly, nonatomic) PXLoadingStatusManager *loadingStatusManager; @property (readonly, weak, nonatomic) id preferredAssetCropDelegate; @property (readonly, weak, nonatomic) id preferredColumnCountsDelegate; @property (readonly, weak, nonatomic) PXGridInlinePlaybackController *inlinePlaybackController; @property (readonly, nonatomic) PXSelectionSnapshot *selectionSnapshot; @property (readonly, nonatomic) BOOL lowMemoryMode; @property (readonly, nonatomic) BOOL isPinching; @property (readonly, nonatomic) struct { struct CGPoint { double x; double y; } normalizedInitialPosition; double normalizedInitialPinchDistance; struct CGPoint { double x; double y; } normalizedPosition; double initialScale; double scale; double scaleVelocity; long long events; double lastEventTime; } pinchState; @property (readonly, nonatomic) BOOL viewBasedDecorationsEnabled; @property (readonly, nonatomic) BOOL isInSelectMode; @property (readonly, nonatomic) NSSet *draggedAssetReferences; @property (readonly, nonatomic) PXAssetReference *dropTargetAssetReference; @property (readonly, nonatomic) BOOL isInteractiveZooming; @property (readonly, nonatomic) double interactiveZoomColumnIndex; @property (readonly, nonatomic) NSArray *allowedColumnWidths; @property (readonly, nonatomic) PXAssetReference *anchorAssetReference; @property (readonly, nonatomic) BOOL isDisplayingIndividualItems; @property (readonly, nonatomic) BOOL aspectFit; @property (readonly, nonatomic) BOOL captionsVisible; @property (readonly, nonatomic) BOOL allowsCaptionsInSquare; @property (readonly, nonatomic) BOOL wantsDimmedSelectionStyle; @property (readonly, nonatomic) BOOL wantsNumberedSelectionStyle; @property (readonly, nonatomic) BOOL wantsFileSizeBadge; @property (readonly, nonatomic) BOOL wantsOverBackgroundFloatingHeaderAppearance; @property (readonly, nonatomic) BOOL layoutExtendsContentBelowBounds; @property (readonly, nonatomic) PXZoomableInlineHeadersDataSourceManager *inlineHeadersDataSourceManager; @property (readonly, nonatomic) id /* block */ effectProvider; @property (readonly, nonatomic) id /* block */ badgesModifier; @property (readonly, nonatomic) BOOL alwaysShowTopBadges; @property (readonly, nonatomic, getter=isFaceModeEnabled) BOOL faceModeEnabled; @property (readonly, nonatomic) BOOL useLowMemoryDecode; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)resetColumns; - (void)setWantsNumberedSelectionStyle:(BOOL)a0; - (void)performChanges:(id /* block */)a0; - (void)_updateShouldHideSurroundingContent; - (void)setViewBasedDecorationsEnabled:(BOOL)a0; - (void)setWantsOverBackgroundFloatingHeaderAppearance:(BOOL)a0; - (void)setEffectProvider:(id /* block */)a0; - (id)init; - (void)setInteractiveZoomColumnIndex:(double)a0 withAnchorAssetReference:(id)a1; - (void)_invalidateAllowedColumns; - (void)setIsInteractiveZooming:(BOOL)a0; - (void)_handleSpecChange; - (void)setCaptionsVisible:(BOOL)a0; - (void)observable:(id)a0 didChange:(unsigned long long)a1 context:(void *)a2; - (void)dealloc; - (void)_invalidateShouldHideSurroundingContent; - (void)setIsInSelectMode:(BOOL)a0; - (void)setFaceModeEnabled:(BOOL)a0; - (void)zoomToColumnIndex:(long long)a0 withAnchorAssetReference:(id)a1 animated:(BOOL)a2; - (void)performInitialChanges:(id /* block */)a0; - (void)didPerformChanges; - (void)setWantsDimmedSelectionStyle:(BOOL)a0; - (double)_columnWidthForDesiredColumnIndex:(double)a0; - (id)initWithDataSourceManager:(id)a0 selectionManager:(id)a1 mediaProvider:(id)a2 specManager:(id)a3 loadingStatusManager:(id)a4 badgesModifier:(id /* block */)a5 preferredAssetCropDelegate:(id)a6 preferredColumnCountsDelegate:(id)a7 inlinePlaybackController:(id)a8; - (void)setUseLowMemoryDecode:(BOOL)a0; - (void)zoomInToIndividualItemsWithAnchorAssetReference:(id)a0 animated:(BOOL)a1; - (void)setWantsFileSizeBadge:(BOOL)a0; - (void)setAlwaysShowTopBadges:(BOOL)a0; - (void)setLowMemoryMode:(BOOL)a0; - (id)mutableChangeObject; - (void)_invalidateAlphaAnimator; - (void)setAllowsCaptionsInSquare:(BOOL)a0; - (void)setIsPinching:(BOOL)a0; - (void)setLayoutExtendsContentBelowBounds:(BOOL)a0; - (void)setPinchState:(struct { struct CGPoint { double x0; double x1; } x0; double x1; struct CGPoint { double x0; double x1; } x2; double x3; double x4; double x5; long long x6; double x7; })a0 withAnchorAssetReference:(id)a1; - (void)_setNeedsUpdate; - (void)_updateAllowedColumns; - (void)setDraggedAssetReferences:(id)a0; - (void)setDropTargetAssetReference:(id)a0; - (BOOL)hasContentToZoom; - (long long)_maxColumnsForIndividualItems; - (void)zoomInToLastRememberedWithAnchorAssetReference:(id)a0 animated:(BOOL)a1; - (long long)denseZoomLevelForZoomState:(struct { struct CGPoint { double x0; double x1; } x0; double x1; double x2; long long x3; long long x4; double x5; BOOL x6; BOOL x7; BOOL x8; BOOL x9; long long x10; long long x11; double x12; double x13; double x14; })a0; - (void)_invalidatePinchVelocity; - (long long)_closestColumnIndexForColumnWidth:(double)a0; - (long long)bestColumnIndexForPreferredNumberOfColumns:(long long)a0; - (void).cxx_destruct; - (void)_invalidateZoomState; - (long long)_closestColumnIndexForAnimatedValue:(double)a0; - (void)_updateZoomState; - (long long)_clampColumnIndexToValidIndex:(long long)a0; - (double)_columnIndexForItemWidth:(double)a0; - (void)_updatePinchVelocity; - (long long)_nextColumnIndexForInitialColumnWidth:(double)a0 currentColumnWidth:(double)a1 velocity:(double)a2; - (void)_updateAlphaAnimator; - (void)setAspectFit:(BOOL)a0; @end