@class PUBrowsingIrisPlayer, UIImage, PUModelTileTransform, PUBrowsingVideoPlayer, PUBadgeInfoPromise, NSObject, PUAssetViewModelChange, UIButton, UIView, PUBrowsingAnimatedImagePlayer, NSString, NSHashTable, PXOperationStatus, PXSearchQueryMatchInfo, PUAssetSharedViewModel, NSArray, PUMediaProvider, PUAssetReference, NSNumber, NSProgress; @protocol OS_dispatch_group, PXVKCVisualSearchResultInfo, PXMediaAnalyzer, PUDisplayAsset, PXVKImageAnalysis, PXVKImageAnalysisInteraction, PUVideoLayerSource; @interface PUAssetViewModel : PUViewModel <PUBrowsingIrisPlayerChangeObserver, PUAssetSharedViewModelChangeObserver, PUBrowsingVideoPlayerChangeObserver, PUBrowsingAnimatedImagePlayerChangeObserver> { PUBrowsingIrisPlayer *_irisPlayer; PUBrowsingAnimatedImagePlayer *_animatedImagePlayer; struct { BOOL videoPlayersLoadingAllowed; } _isValid; struct { BOOL matchedTimeRanges; } _mediaAnalyzerRespondsTo; } @property (retain, nonatomic) PUBrowsingVideoPlayer *videoPlayer; @property (readonly, nonatomic) PUAssetViewModelChange *currentChange; @property (readonly, nonatomic) PUAssetViewModelChange *currentChangeIfExists; @property (nonatomic, setter=_setNeedsUpdateVideoPlayers:) BOOL _needsUpdateVideoPlayers; @property (nonatomic) BOOL needsUpdateHighlightTimeRanges; @property (nonatomic) BOOL needsUpdateShouldShowHighlightTimeRanges; @property (nonatomic, setter=_setFavorite:) BOOL isFavorite; @property (nonatomic, setter=_setCurrentFavoriteOverrideRequest:) long long _currentFavoriteOverrideRequest; @property (nonatomic, setter=_setLastAccessoryViewVisibilityChangeReason:) long long lastAccessoryViewVisibilityChangeReason; @property (nonatomic, setter=_setLastContentOffsetChangeReason:) long long lastContentOffsetChangeReason; @property (copy, nonatomic) PXOperationStatus *loadingStatus; @property (retain, nonatomic) NSProgress *saveProgress; @property (retain, nonatomic) NSProgress *highlightAnalysisProgress; @property (nonatomic) long long displayedContentUpdateCount; @property (nonatomic) BOOL isUpdatingDisplayedContent; @property (retain, nonatomic) NSObject<OS_dispatch_group> *displayedContentUpdateGroup; @property (retain, nonatomic) NSHashTable *registeredVideoLayerSources; @property (nonatomic) long long fetchAssetSyndicationState; @property (retain, nonatomic) id<PXMediaAnalyzer> mediaAnalyzer; @property (retain, nonatomic) id<PUDisplayAsset> asset; @property (retain, nonatomic) PUMediaProvider *mediaProvider; @property (nonatomic) double focusValue; @property (copy, nonatomic) PUBadgeInfoPromise *badgeInfoPromise; @property (nonatomic) BOOL forceBadgesVisible; @property (nonatomic) long long importState; @property (nonatomic) BOOL isScrubbing; @property (copy, nonatomic) NSArray *highlightTimeRanges; @property (copy, nonatomic) NSNumber *isFavoriteOverride; @property (copy, nonatomic) NSNumber *assetSyndicationStateOverride; @property (retain, nonatomic) PUAssetReference *assetReference; @property (retain, nonatomic) PUAssetSharedViewModel *assetSharedViewModel; @property (copy, nonatomic) PUModelTileTransform *modelTileTransform; @property (nonatomic, setter=setUserTransformingTile:) BOOL isUserTransformingTile; @property (nonatomic) double focusValueAtZeroTimestamp; @property (readonly, nonatomic) BOOL shouldShowHighlightTimeRanges; @property (retain, nonatomic) PXSearchQueryMatchInfo *searchQueryMatchInfo; @property (nonatomic) BOOL isDisplayingSearchQueryLabel; @property (readonly, nonatomic) PUBrowsingIrisPlayer *irisPlayer; @property (readonly, nonatomic) PUBrowsingAnimatedImagePlayer *animatedImagePlayer; @property (readonly, nonatomic) long long saveState; @property (nonatomic, getter=isAccessoryViewVisible) BOOL accessoryViewVisible; @property (readonly, nonatomic) BOOL isLastAccessoryViewVisibilityChangeReasonUserAction; @property (nonatomic) BOOL isAccessoryViewDoneAnimatingIn; @property (readonly, nonatomic) struct CGPoint { double x0; double x1; } contentOffset; @property (nonatomic) struct CGPoint { double x; double y; } preferredContentOffset; @property (nonatomic) struct CGPoint { double x; double y; } overridingContentOffset; @property (nonatomic) double contentOffsetOverrideFactor; @property (readonly, nonatomic) BOOL isInEditMode; @property (readonly, nonatomic) long long editStyle; @property (readonly, nonatomic) long long lastEditStyleChangeReason; @property (readonly, nonatomic) BOOL lowMemoryMode; @property (nonatomic) BOOL toggleCTM; @property (nonatomic) long long flippingFullSizeRenderState; @property (nonatomic) BOOL revealsGainMapImage; @property (nonatomic) BOOL isPresentedForPreview; @property (retain, nonatomic) id<PXVKImageAnalysis> visualImageAnalysis; @property (readonly, nonatomic) id<PXVKCVisualSearchResultInfo> visualSearchResultInfo; @property (weak, nonatomic) UIButton *visualIntelligenceAnalysisButton; @property (nonatomic) BOOL isBeingDismissed; @property (nonatomic) BOOL isIrisPlaying; @property (weak, nonatomic) UIView *visualSearchCornerView; @property (nonatomic) int visualIntelligenceAnalyzeRequestID; @property (nonatomic) BOOL isVisualSearchCardShowing; @property (weak, nonatomic) id<PXVKImageAnalysisInteraction> visualSearchImageAnalysisInteraction; @property (retain, nonatomic) id<PXVKCVisualSearchResultInfo> visualSearchLookupTopItem; @property (nonatomic) BOOL needsVisualImageAnalysis; @property (nonatomic) BOOL hasVisualAnalysisFailed; @property (nonatomic) long long statusCornerState; @property (weak, nonatomic) UIImage *bestImage; @property (nonatomic) BOOL needsResetVisualImageInteraction; @property (readonly, nonatomic) long long needsResetVisualImageInteractionReason; @property (readonly, nonatomic) id<PUVideoLayerSource> primaryVideoLayerSource; @property (nonatomic) BOOL PPT_isDeferredProcessingDoneAndFinalImageDisplayed; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)setSaveState:(long long)a0; - (void)viewModel:(id)a0 didChange:(id)a1; - (void)_invalidateHighlightTimeRanges; - (id)init; - (void)registerChangeObserver:(id)a0; - (void)dealloc; - (void)unregisterChangeObserver:(id)a0; - (void)didPerformChanges; - (void)resetContentOffset; - (void)didUpdateDisplayedContent; - (void)_handleHighlightTimeRangesResult:(id)a0 forAsset:(id)a1; - (void)_updateShouldShowHighlightTimeRanges; - (void)_setAssetSyndicationState:(long long)a0; - (void)_handleBrowsingIrisPlayer:(id)a0 didChange:(id)a1; - (id)initWithLowMemoryMode:(BOOL)a0; - (void)_handleBrowsingVideoPlayer:(id)a0 didChange:(id)a1; - (void)_updateVideoPlayersLoadingAllowedIfNeeded; - (void)_updateHighlightTimeRangesIfNeeded; - (void)willUpdateDisplayedContent; - (void)unregisterVideoLayerSource:(id)a0; - (void)setPreferredContentOffset:(struct CGPoint { double x0; double x1; })a0 changeReason:(long long)a1; - (void)_handleAssetSharedViewModel:(id)a0 didChange:(id)a1; - (void).cxx_destruct; - (void)_updateVideoPlaybackStartTime; - (void)_updateFavoriteState; - (void)setShouldShowHighlightTimeRanges:(BOOL)a0; - (void)setAccessoryViewVisible:(BOOL)a0 changeReason:(long long)a1; - (void)_invalidateShouldShowHighlightTimeRanges; - (id)newViewModelChange; - (void)_pauseAndRewindVideoIfNeeded; - (void)registerVideoLayerSource:(id)a0; - (void)_handleDidEndScrubbing; - (void)_updateVideoPlayersIfNeeded; - (void)_handleBrowsingAnimatedImage:(id)a0 didChange:(id)a1; - (void)_invalidateVideoPlayers; - (id)debugDetailedDescription; - (void)setEditStyle:(long long)a0 changeReason:(long long)a1; - (void)setNeedsResetVisualImageInteraction:(BOOL)a0 reason:(long long)a1; - (void)_updatePropertiesFromAssetSharedViewModel; - (BOOL)_shouldPauseAndRewindVideo; @end