@class PXStatusViewModel, PXLibraryFilterState, PXPhotosHeaderCustomizationModel, NSOrderedSet, PXAssetReference, NSString, NSMutableSet, PXSearchQueryMatchInfo, PXAssetsDataSource, PXSharedLibraryStatusProvider, PXMediaProvider, PXPhotosLayoutSpecManager, PXContentFilterState, PXSelectionSnapshot, PXUpdater, NSSet, PXContentPrivacyController, PXAssetsDataSourceManager, PXFooterViewModel, PXLoadingStatusManager, PXSectionedObjectReference, PXAssetActionManager, PXSectionedSelectionManager, PXPhotosGridActionManager, PXGridInlinePlaybackController, NSMutableOrderedSet, PXAssetCollectionActionManager, NSNumber; @protocol PXPhotosViewDelegate, PXPhotosGridOptionsController, PXTapbackStatusManager, PXPhotosPreferredAssetCropDelegate, PXBrowserSelectionSnapshot, PXMemoryAssetsActionFactory, PXGDisplayAssetPixelBufferSourcesProvider, PXAssetImportStatusManager, PXPhotosPreferredColumnCountsDelegate, NSObject, PXZoomablePhotosUserDefaults; @interface PXPhotosViewModel : PXObservable <PXAssetsDataSourceManagerObserver, PXMutablePhotosViewModel, PXSectionedSelectionManagerSnapshotValidator> { PXFooterViewModel *_footerViewModel; NSMutableSet *_enterSelectModePreventedForReasons; NSMutableSet *_oneUpPresentationPreventedForReasons; NSMutableSet *_aspectRatioTogglePreventedForReasons; NSMutableSet *_hideSurroundingContentForReasons; BOOL _allowsAspectFitToggle; long long _contentMode; id<NSObject> _filterTimeoutObserver; NSMutableOrderedSet *_visibleAssetCollections; long long _contentStartingPosition; BOOL _ignoreFilterPredicateAssert; } @property (readonly, nonatomic) id<PXBrowserSelectionSnapshot> browserSelectionSnapshot; @property (readonly, nonatomic) PXUpdater *updater; @property (retain, nonatomic) PXSelectionSnapshot *selectionSnapshot; @property (nonatomic) double zoomStep; @property (nonatomic) BOOL isInteractiveZooming; @property (nonatomic) BOOL shouldAnimateZooming; @property (retain, nonatomic) PXAssetReference *zoomAnchorAssetReference; @property (nonatomic) BOOL aspectFitContent; @property (readonly, nonatomic) BOOL shouldAspectFitContentByDefault; @property (nonatomic) long long emptyPlaceholderState; @property (nonatomic) long long contentPrivacyState; @property (nonatomic) long long systemAuthenticationType; @property (weak, nonatomic) id<PXPhotosViewDelegate> viewDelegate; @property (readonly, nonatomic) unsigned long long viewDelegateRespondsTo; @property (copy, nonatomic) id /* block */ infoActionHandler; @property (readonly, nonatomic) BOOL isInitializing; @property (readonly, nonatomic) BOOL alwaysIncludeSharedWithYouAssets; @property (readonly, nonatomic) long long configuredSectionHeaderStyle; @property (readonly, nonatomic) long long configuredSectionBodyStyle; @property (nonatomic) BOOL wantsTabBarVisible; @property (nonatomic) BOOL wantsNavbarVisible; @property (nonatomic) BOOL wantsToolbarVisible; @property (nonatomic) BOOL wantsFooterVisible; @property (readonly, nonatomic) BOOL _shouldMimicSystemChromelessUsingManualScrollEdgeAppearance; @property (readonly, nonatomic) PXAssetsDataSourceManager *dataSourceManager; @property (readonly, nonatomic) PXSectionedSelectionManager *selectionManager; @property (readonly, nonatomic) PXPhotosGridActionManager *gridActionManager; @property (readonly, nonatomic) PXMediaProvider *mediaProvider; @property (readonly, nonatomic) PXContentPrivacyController *privacyController; @property (readonly, nonatomic) PXAssetActionManager *assetActionManager; @property (readonly, nonatomic) PXAssetCollectionActionManager *assetCollectionActionManager; @property (readonly, nonatomic) PXLoadingStatusManager *loadingStatusManager; @property (readonly, nonatomic) id<PXTapbackStatusManager> tapbackStatusManager; @property (readonly, nonatomic) id<PXAssetImportStatusManager> assetImportStatusManager; @property (readonly, nonatomic) BOOL wantsDynamicTitles; @property (readonly, nonatomic) BOOL wantsFooterMask; @property (readonly, nonatomic) BOOL wantsCPLStatus; @property (readonly, nonatomic) BOOL wantsRenderingStatus; @property (readonly, nonatomic) BOOL isEmbedded; @property (readonly, nonatomic) BOOL wantsSingleRowScrollingLayout; @property (readonly, nonatomic) BOOL wantsShareGridButtonVisible; @property (readonly, nonatomic) BOOL wantsAggregationsLayout; @property (readonly, nonatomic) PXFooterViewModel *footerViewModel; @property (readonly, nonatomic) PXPhotosLayoutSpecManager *specManager; @property (readonly, nonatomic) PXSearchQueryMatchInfo *searchQueryMatchInfo; @property (readonly, nonatomic) id /* block */ badgesModifier; @property (readonly, nonatomic) Class cplActionManagerClass; @property (readonly, nonatomic) PXAssetsDataSource *currentDataSource; @property (readonly, nonatomic) long long selectionContext; @property (readonly, nonatomic) BOOL isInSelectMode; @property (readonly, nonatomic) BOOL isInCompactMode; @property (readonly, nonatomic) BOOL canEnterSelectMode; @property (readonly, nonatomic) BOOL canExitSelectMode; @property (readonly, nonatomic) BOOL canSwipeSelect; @property (readonly, nonatomic) BOOL canPresentOneUp; @property (readonly, nonatomic) BOOL isAppearing; @property (readonly, nonatomic) BOOL dismissRequested; @property (readonly, nonatomic) BOOL hasScrollableContent; @property (readonly, nonatomic, getter=isScrolledToTop) BOOL scrolledToTop; @property (readonly, nonatomic) double headerTitleTopInset; @property (readonly, copy, nonatomic) NSSet *draggedAssetReferences; @property (readonly, nonatomic) PXAssetReference *dropTargetAssetReference; @property (readonly, nonatomic) PXAssetReference *singleSelectedAssetReference; @property (readonly, nonatomic) BOOL supportsAspectRatioToggle; @property (readonly, nonatomic) struct UIEdgeInsets { double top; double left; double bottom; double right; } additionalAspectFitEdgeMargins; @property (readonly, nonatomic) long long gridStyle; @property (readonly, nonatomic) long long preferredUserInterfaceStyle; @property (readonly, nonatomic) double itemAspectRatio; @property (readonly, nonatomic) BOOL showLoadingPlaceholderWhenEmpty; @property (readonly, weak, nonatomic) id<PXPhotosPreferredAssetCropDelegate> preferredAssetCropDelegate; @property (readonly, weak, nonatomic) id<PXPhotosPreferredColumnCountsDelegate> preferredColumnCountsDelegate; @property (readonly, nonatomic) BOOL ignoreContentFilterStateWhenNotFiltering; @property (readonly, nonatomic) BOOL supportsPeopleActions; @property (readonly, nonatomic, getter=isFaceModeEnabled) BOOL faceModeEnabled; @property (readonly, copy, nonatomic) NSNumber *userWantsAspectFitContent; @property (readonly, nonatomic) BOOL supportsZooming; @property (readonly, nonatomic) long long numberOfZoomSteps; @property (readonly, nonatomic) BOOL canFilterContent; @property (readonly, nonatomic) BOOL wantsContentFilterVisible; @property (readonly, nonatomic) BOOL wantsContentFilterIndicatorVisible; @property (readonly, nonatomic) long long footerVisibilityStyle; @property (readonly, nonatomic) BOOL footerHasImportantInformation; @property (readonly, nonatomic) BOOL wantsContentUnavailableUnlockButtonVisible; @property (readonly, nonatomic) BOOL hideSurroundingContent; @property (readonly, nonatomic) BOOL hidesNavbar; @property (readonly, nonatomic) BOOL hidesToolbar; @property (readonly, nonatomic) BOOL shouldAlwaysRespectToolbarActionPlacementPreference; @property (readonly, nonatomic) BOOL prefersActionsInToolbar; @property (readonly, nonatomic, getter=isContentBelowTitle) BOOL contentBelowTitle; @property (readonly, nonatomic, getter=isShowingAlternateContent) BOOL showingAlternateContent; @property (readonly, nonatomic) BOOL requiresLightTopBars; @property (readonly, nonatomic) double topBarsAppearanceChangeAnimationDuration; @property (readonly, nonatomic) double titleBackgroundOpacity; @property (readonly, nonatomic) BOOL viewBasedDecorationsEnabled; @property (readonly, nonatomic) BOOL captionsVisible; @property (readonly, nonatomic) BOOL wantsTopBadgesWithViewBasedDecorations; @property (readonly, nonatomic) BOOL wantsDimmedSelectionStyle; @property (readonly, nonatomic) BOOL wantsNumberedSelectionStyle; @property (readonly, nonatomic) BOOL wantsFileSizeBadge; @property (readonly, nonatomic) BOOL allowsShowDetails; @property (readonly, nonatomic) BOOL allowsChromeManagementBehavior; @property (readonly, nonatomic) BOOL allowsInlineAddBehavior; @property (readonly, nonatomic) BOOL allowsSelectionUserActivityBehavior; @property (readonly, nonatomic) BOOL allowsPopOnContainerDeleteBehavior; @property (readonly, nonatomic) BOOL allowsPopOnEmptyBehavior; @property (readonly, nonatomic) BOOL allowsEmptyPlaceholderBehavior; @property (readonly, nonatomic) BOOL allowsActionMenuBehavior; @property (readonly, nonatomic) BOOL allowsDoubleTapBehavior; @property (readonly, nonatomic) BOOL allowsHoverBehavior; @property (readonly, nonatomic) BOOL allowsCaptionsInSquareBehavior; @property (readonly, nonatomic) BOOL allowsContextMenuCustomization; @property (readonly, nonatomic) BOOL allowsAccessoriesContextMenuCustomization; @property (readonly, nonatomic) BOOL allowsMacStyleSelection; @property (readonly, nonatomic) BOOL allowsSelectModeToggle; @property (readonly, nonatomic) BOOL allowsSelectAllAction; @property (readonly, nonatomic) BOOL allowsSlideshowAction; @property (readonly, nonatomic) BOOL allowsAddAction; @property (readonly, nonatomic) BOOL allowsCopyAction; @property (readonly, nonatomic) BOOL allowsSelectSectionAction; @property (readonly, nonatomic) BOOL allowsGridAppearanceActions; @property (readonly, nonatomic) BOOL allowsShareAllAction; @property (readonly, nonatomic) BOOL allowsQuickLookAction; @property (readonly, nonatomic) BOOL allowsShowMapAction; @property (readonly, nonatomic) BOOL allowsPickAssetAction; @property (readonly, nonatomic) BOOL allowsOneUpPresentation; @property (readonly, nonatomic) BOOL allowsDismissAction; @property (readonly, nonatomic) BOOL allowsFileRadarAction; @property (readonly, nonatomic) BOOL allowsTrashAction; @property (readonly, nonatomic) BOOL allowsShareAction; @property (readonly, nonatomic) BOOL allowsAddToLibraryAction; @property (readonly, nonatomic) BOOL allowsSwitchLibraryAction; @property (readonly, nonatomic) BOOL allowsMoveToLibraryAction; @property (readonly, nonatomic) BOOL allowsMoveToPersonalLibraryAction; @property (readonly, nonatomic) BOOL allowsMoveToSharedLibraryAction; @property (readonly, nonatomic) BOOL allowsInfoAction; @property (readonly, nonatomic) BOOL allowsCMMActions; @property (readonly, nonatomic) BOOL allowsSyndicatedContentFiltering; @property (readonly, nonatomic) BOOL allowsContentSyndicationSaveAllAction; @property (readonly, nonatomic) BOOL allowsReplyAction; @property (readonly, nonatomic) BOOL allowsTapbackAction; @property (readonly, nonatomic) BOOL allowsSwipeToSelect; @property (readonly, nonatomic) BOOL allowsDragIn; @property (readonly, nonatomic) BOOL allowsDragOut; @property (readonly, nonatomic) BOOL allowsUserDefaults; @property (readonly, nonatomic) id<PXZoomablePhotosUserDefaults> customUserDefaults; @property (readonly, nonatomic) BOOL allowsLinkInteractions; @property (readonly, nonatomic) BOOL allowsMultiSelectMenu; @property (readonly) long long dismissAffordance; @property (readonly, copy, nonatomic) NSString *title; @property (readonly, copy, nonatomic) NSString *containerTitle; @property (readonly, copy, nonatomic) NSString *footerSubtitle; @property (readonly, nonatomic) unsigned long long forbiddenBadges; @property (readonly, nonatomic) BOOL allowsInteractiveFavoriteBadges; @property (readonly, nonatomic) id<PXPhotosGridOptionsController> optionsController; @property (readonly, nonatomic) long long navBarStyle; @property (readonly, nonatomic) BOOL shouldOptOutOfChromelessBars; @property (readonly, nonatomic) BOOL wantsModernNavBarButtons; @property (readonly, nonatomic) BOOL lowMemoryMode; @property (readonly, nonatomic) BOOL hideFooterInSelectMode; @property (readonly, nonatomic) double floatingTitleOpacity; @property (readonly, nonatomic) BOOL wantsFloatingTitle; @property (readonly, nonatomic) long long oneUpPresentationOrigin; @property (readonly, nonatomic) BOOL providesOneUpActionManager; @property (readonly, nonatomic) BOOL wantsOneUpShowInLibraryButton; @property (readonly, nonatomic) BOOL allowsMergeDuplicatesAction; @property (nonatomic) BOOL showsOnlySelectedItemsInOneUp; @property (readonly, nonatomic) PXLibraryFilterState *libraryFilterState; @property (readonly, nonatomic) PXContentFilterState *contentFilterState; @property (readonly, nonatomic) NSOrderedSet *visibleAssetCollections; @property (readonly, nonatomic) BOOL contentStartsAtEnd; @property (readonly, nonatomic) PXSectionedObjectReference *initialNavigationObjectReference; @property (readonly, nonatomic) long long initialNavigationScrollPosition; @property (readonly, nonatomic) long long scrollingBehavior; @property (retain, nonatomic) Class decorationViewClass; @property (retain, nonatomic) PXStatusViewModel *emptyPlaceholderStatusViewModel; @property (readonly, nonatomic) id<PXMemoryAssetsActionFactory> memoryAssetsActionFactory; @property (readonly, nonatomic) id /* block */ effectProvider; @property (readonly, nonatomic) long long noContentPlaceholderType; @property (readonly, nonatomic) NSString *noContentPlaceholderFallbackTitle; @property (readonly, nonatomic) NSString *noContentPlaceholderFallbackMessage; @property (readonly, nonatomic) BOOL wantsFooterVisibleImmediately; @property (readonly, nonatomic) PXPhotosHeaderCustomizationModel *headerCustomizationModel; @property (readonly, nonatomic) PXSharedLibraryStatusProvider *sharedLibraryStatusProvider; @property (readonly, nonatomic) PXGridInlinePlaybackController<PXGDisplayAssetPixelBufferSourcesProvider> *inlinePlaybackController; @property (nonatomic) long long overrideDefaultNumberOfColumns; @property (readonly, copy, nonatomic) NSString *pickerClientBundleIdentifier; @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; @property (nonatomic) BOOL keepsTabBarAlwaysHidden; - (void)_updateUserWantsAspectFitContent; - (void)setIsAppearing:(BOOL)a0; - (void)selectAll; - (void)assetsDataSourceManagerDidFinishBackgroundFetching:(id)a0; - (void)setViewBasedDecorationsEnabled:(BOOL)a0; - (void)setNoContentPlaceholderFallbackTitle:(id)a0; - (void)setEffectProvider:(id /* block */)a0; - (id)init; - (void)setShowLoadingPlaceholderWhenEmpty:(BOOL)a0; - (BOOL)selectionManagerShouldAvoidEmptySelection:(id)a0; - (void)setCaptionsVisible:(BOOL)a0; - (void)observable:(id)a0 didChange:(unsigned long long)a1 context:(void *)a2; - (void)dealloc; - (void)setContentFilterState:(id)a0; - (void)setIsInSelectMode:(BOOL)a0; - (void)setFaceModeEnabled:(BOOL)a0; - (void)setShouldAlwaysRespectToolbarActionPlacementPreference:(BOOL)a0; - (void)_updateGridAppearance; - (void)_updateEmptyPlaceholderState; - (void)_updateFooterVisibility; - (void)didPerformChanges; - (void)_invalidateSystemAuthenticationType; - (void)setContentBelowTitle:(BOOL)a0; - (void)_invalidateAspectFitContent; - (void)_invalidateGridAppearance; - (void)setCurrentDataSource:(id)a0; - (void)setEnterSelectModeAllowed:(BOOL)a0 forReason:(id)a1; - (void)setHideSurroundingContent:(BOOL)a0 forReason:(id)a1; - (void)setTapbackStatusManager:(id)a0; - (void)setZoomStep:(double)a0 isInteractive:(BOOL)a1 shouldAnimate:(BOOL)a2 anchorAssetReference:(id)a3; - (void)setWantsContentFilterVisible:(BOOL)a0; - (void)_updateSystemAuthenticationType; - (void)setDismissRequested:(BOOL)a0; - (void)setFooterHasImportantInformation:(BOOL)a0; - (void)setHasScrollableContent:(BOOL)a0; - (void)_updateAspectFitContent; - (void)_updateTopBarsStyles; - (void)_invalidateEmptyPlaceholderState; - (void)deselectAll; - (id)_initialContentFilterStateForConfiguration:(id)a0; - (void)_invalidateContentPrivacyState; - (void)_invalidateWantsContentFilterIndicatorVisible; - (void)setTitleBackgroundOpacity:(double)a0; - (void)setUserWantsAspectFitContent:(id)a0; - (void)_setNeedsUpdate; - (void)setWantsContentUnavailableUnlockButtonVisible:(BOOL)a0; - (void)_invalidateDraggedAssetReferences; - (void)setScrolledToTop:(BOOL)a0; - (void)setAspectRatioToggleAllowed:(BOOL)a0 forReason:(id)a1; - (void)setDraggedAssetReferences:(id)a0; - (void)clickSelectIndexPath:(struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })a0 updateCursorIndexPath:(BOOL)a1; - (BOOL)viewDelegateRespondsTo:(unsigned long long)a0; - (void)setFooterVisibilityStyle:(long long)a0; - (void)setDropTargetAssetReference:(id)a0; - (void)setHeaderTitleTopInset:(double)a0; - (void)setNoContentPlaceholderFallbackMessage:(id)a0; - (void)_updateDraggedAssetReferences; - (void)toggleSelectionForAssetReference:(id)a0 updateCursorIndexPath:(BOOL)a1; - (void)_updateAssetsDataSourceManager; - (void)_invalidateFooterVisibility; - (void)_updateDataSourceDependentProperties; - (id)initWithConfiguration:(id)a0 specManager:(id)a1; - (void)setShowingAlternateContent:(BOOL)a0; - (void)toggleSelectionForAssetCollectionReference:(id)a0; - (id)selectionManager:(id)a0 validateSnapshot:(id)a1; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void)clickSelectAssetReference:(id)a0 updateCursorIndexPath:(BOOL)a1; - (void)_updateWantsContentFilterIndicatorVisible; - (id)_initialLibraryFilterStateForConfiguration:(id)a0; - (void)_invalidateChromeVisibility; - (void).cxx_destruct; - (void)toggleSelectionForIndexPath:(struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })a0; - (void)setWantsContentFilterIndicatorVisible:(BOOL)a0; - (void)toggleSelectionForAssetReference:(id)a0; - (void)setOneUpPresentationAllowed:(BOOL)a0 forReason:(id)a1; - (void)_invalidateUserWantsAspectFitContent; - (void)setSupportsAspectRatioToggle:(BOOL)a0; - (void)setRequiresLightTopBars:(BOOL)a0; - (void)_updateContentPrivacyState; - (void)_updateWantsContentUnavailableUnlockButtonVisible; - (void)_invalidateAssetsDataSourceManager; - (id)initWithConfiguration:(id)a0 specManager:(id)a1 inlinePlaybackController:(id)a2; - (void)setIsInCompactMode:(BOOL)a0; - (void)toggleSelectionForIndexPath:(struct PXSimpleIndexPath { long long x0; long long x1; long long x2; long long x3; })a0 updateCursorIndexPath:(BOOL)a1; - (void)_invalidateWantsContentUnavailableUnlockButtonVisible; - (void)setCplActionManagerClass:(Class)a0; - (void)assetsDataSourceManagerDidFinishLoadingInitialDataSource:(id)a0; - (BOOL)attemptSetInSelectMode:(BOOL)a0; - (void)setFloatingTitleOpacity:(double)a0; - (void)_invalidateTopBarsStyles; - (id)_indexPathsForAssetCollectionReference:(id)a0; - (void)_updateChromeVisibility; - (void)setNumberOfZoomSteps:(long long)a0; - (void)_updateFilteringTimeoutObserver; - (void)setHidesNavbar:(BOOL)a0; - (void)setHidesToolbar:(BOOL)a0; - (void)setAdditionalAspectFitEdgeMargins:(struct UIEdgeInsets { double x0; double x1; double x2; double x3; })a0; @end