luxlabs header browser preview


@class PUCachedMapTable, PUAssetActionManager, NSDate, NSObject, PUAssetsDataSource, NSString, PUReviewScreenBarsModel, PXSearchQueryMatchInfo, PUAssetViewModel, NSMutableSet, PUMediaProvider, PXContentPrivacyController, PUPhotoPickerResizeTaskDescriptorViewModel, PUAssetReference;
@protocol OS_dispatch_queue, PXAssetImportStatusManager;

@interface PUBrowsingViewModel : PUViewModel <PUAssetViewModelChangeObserver, PUAssetSharedViewModelChangeObserver, PXChangeObserver, PXAssetImportStatusObserver> {
    PUAssetReference *_currentAssetReference;
    NSDate *_currentAssetReferenceChangedDate;
    double _lastAssetWasCurrentForDuration;
    BOOL _browsingSpeedRegimeIsValid;
    BOOL _isBrowsingSpeedRegimeInvalidationScheduled;
    PUCachedMapTable *_viewModelByAssetReference;
    NSMutableSet *_invalidAssetViewModels;
    BOOL _allAssetViewModelsAreInvalid;
    PUCachedMapTable *_assetSharedViewModelByAsset;
    PUCachedMapTable *_assetSharedViewModelByAssetUUID;
    BOOL _videoContentAllowed;
    BOOL _needsUpdatePlaybackAudioSession;
}

@property (class, nonatomic) long long muteMode;

@property (nonatomic, setter=_setUserNavigationDistance:) long long _userNavigationDistance;
@property (nonatomic, setter=_setScrubbingSessionDistance:) long long _scrubbingSessionDistance;
@property (nonatomic, setter=_setLastChromeVisibilityChangeReason:) long long lastChromeVisibilityChangeReason;
@property (retain, nonatomic, setter=_setLastChromeVisibilityChangeContext:) id lastChromeVisibilityChangeContext;
@property (nonatomic, setter=_setAnimatingAnyTransition:) BOOL isAnimatingAnyTransition;
@property (retain, nonatomic, setter=_setAnimatingTransitionIdentifiers:) NSMutableSet *_animatingTransitionIdentifiers;
@property (retain, nonatomic, setter=_setVideoDisallowedReasons:) NSMutableSet *_videoDisallowedReasons;
@property (nonatomic, setter=_setBrowsingSpeedRegime:) long long browsingSpeedRegime;
@property (retain, nonatomic, setter=_setTrailingAssetReference:) PUAssetReference *trailingAssetReference;
@property (retain, nonatomic, setter=_setLeadingAssetReference:) PUAssetReference *leadingAssetReference;
@property (readonly, nonatomic) NSObject<OS_dispatch_queue> *audioSessionUpdateQueue;
@property (retain, nonatomic) PUAssetsDataSource *assetsDataSource;
@property (retain, nonatomic) PUMediaProvider *mediaProvider;
@property (retain, nonatomic) PUAssetActionManager *actionManager;
@property (retain, nonatomic) id<PXAssetImportStatusManager> importStatusManager;
@property (retain, nonatomic) PXContentPrivacyController *privacyController;
@property (retain, nonatomic) PUAssetReference *currentAssetReference;
@property (readonly, nonatomic) PUAssetReference *lastViewedAssetReference;
@property (readonly, nonatomic) PUAssetReference *assetBeforeLastViewedAssetReference;
@property (readonly, nonatomic) double currentAssetTransitionProgress;
@property (readonly, copy, nonatomic) NSString *transitionDriverIdentifier;
@property (readonly, nonatomic) BOOL assetChangesShouldAnimate;
@property (nonatomic) BOOL isScrubbing;
@property (nonatomic) BOOL isScrolling;
@property (nonatomic) long long videoOverlayPlayState;
@property (nonatomic) BOOL isAttemptingToPlayVideoOverlay;
@property (nonatomic) BOOL accessoryViewsDefaultVisibility;
@property (readonly, nonatomic) long long contentPrivacyState;
@property (readonly, nonatomic) long long systemAuthenticationType;
@property (readonly, nonatomic) BOOL wantsContentUnavailableUnlockButtonVisible;
@property (nonatomic, setter=setChromeVisible:) BOOL isChromeVisible;
@property (readonly, nonatomic) NSDate *lastChromeVisibilityChangeDate;
@property (nonatomic, getter=isPresentingOverOneUp) BOOL presentingOverOneUp;
@property (nonatomic) long long horizontalSizeClass;
@property (nonatomic) struct CGSize { double width; double height; } secondScreenSize;
@property (nonatomic) long long muteMode;
@property (readonly, nonatomic) PUAssetViewModel *assetViewModelForCurrentAssetReference;
@property (copy, nonatomic) NSString *navigationBarTitle;
@property (retain, nonatomic) PUReviewScreenBarsModel *reviewScreenBarsModel;
@property (retain, nonatomic) PUPhotoPickerResizeTaskDescriptorViewModel *resizeTaskDescriptorViewModel;
@property (readonly, nonatomic) BOOL isVideoContentAllowed;
@property (readonly, nonatomic) BOOL lowMemoryMode;
@property (nonatomic) BOOL isInSelectionMode;
@property (nonatomic) BOOL livePhotoShouldPlay;
@property (retain, nonatomic) PXSearchQueryMatchInfo *searchQueryMatchInfo;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

+ (void)_handleSceneWillDeactivateNotification:(id)a0;
+ (void)initialize;

- (void)viewModel:(id)a0 didChange:(id)a1;
- (void)_updateAssetViewModelsIfNeeded;
- (void)setSystemAuthenticationType:(long long)a0;
- (void)_handleAssetViewModel:(id)a0 didChange:(id)a1;
- (id)init;
- (void)_resetAccessoryViewsVisibilityToDefaultWithChangeReason:(long long)a0;
- (void)_setTransitionDriverIdentifier:(id)a0;
- (void)registerChangeObserver:(id)a0;
- (void)setChromeVisible:(BOOL)a0 changeReason:(long long)a1;
- (void)observable:(id)a0 didChange:(unsigned long long)a1 context:(void *)a2;
- (void)_invalidateCurrentAndNeighboringAssetViewModels;
- (void)_invalidateBrowsingSpeedRegimeAfterMaximumDelay:(double)a0;
- (void)unregisterChangeObserver:(id)a0;
- (void)setCurrentAssetReference:(id)a0 transitionProgress:(double)a1 transitionDriverIdentifier:(id)a2 animated:(BOOL)a3;
- (void)_invalidateBrowsingSpeedRegime;
- (void)didPerformChanges;
- (void)_handleAsyncBrowsingSpeedRegimeInvalidation;
- (BOOL)_needsUpdate;
- (void)_setVideoContentAllowed:(BOOL)a0;
- (void)setAnimating:(BOOL)a0 transitionWithIdentifier:(id)a1;
- (void)_setCurrentAssetTransitionProgress:(double)a0;
- (void)_updatePlaybackAudioSessionIfNeeded;
- (void)_updateScrubSpeedRegimeIfNeeded;
- (void)setAccessoryViewsDefaultVisibility:(BOOL)a0 changeReason:(long long)a1;
- (void)_updateSystemAuthenticationType;
- (id)assetSharedViewModelForAsset:(id)a0;
- (BOOL)isTogglingCTMForAsset:(id)a0;
- (void)_handleAutoplayMutedDidChangeNotification:(id)a0;
- (id)assetViewModelForAssetReference:(id)a0;
- (id)initWithLowMemoryMode:(BOOL)a0;
- (void)setWantsContentUnavailableUnlockButtonVisible:(BOOL)a0;
- (void)_updateIfNeeded;
- (void)_updateNeighboringAssetReferences;
- (id)currentChange;
- (void)_updateAssetViewModel:(id)a0;
- (id)activeAssetReferences;
- (id)_assetSharedViewModelForAsset:(id)a0 createIfNeeded:(BOOL)a1;
- (void)setVideoContentAllowed:(BOOL)a0 forReason:(id)a1;
- (id)_filteredAllowedBadges:(id)a0 forAssetReference:(id)a1;
- (void)resetMuteMode;
- (void)_handleAssetSharedViewModel:(id)a0 didChange:(id)a1;
- (void)_invalidateAllAssetViewModels;
- (void).cxx_destruct;
- (void)setVideoContentAllowedForAllReasons;
- (void)signalReviewScreenSelectionChanged;
- (id)assetSharedViewModelForAssetUUID:(id)a0;
- (id)newViewModelChange;
- (void)_invalidatePlaybackAudioSession;
- (void)_updateContentPrivacyState;
- (void)_updateWantsContentUnavailableUnlockButtonVisible;
- (double)_focusValueForAsset:(id)a0;
- (void)assetImportStatusManager:(id)a0 didChangeStatusForAssetReference:(id)a1;
- (id)debugDetailedDescription;
- (void)_invalidateAssetViewModel:(id)a0;
- (id)_badgeInfoPromiseForAssetReference:(id)a0;
- (void)setChromeVisible:(BOOL)a0 changeReason:(long long)a1 context:(id)a2;
- (long long)_importStateForAssetReference:(id)a0;
- (void)setContentPrivacyState:(long long)a0;

@end