@class PXVideoSession, NSString, UIView, UIImage, PXVideoSessionUIView, PUBrowsingVideoPlayer, PUBrowsingViewModel, UIImageView, PXPixelBufferView, AVPlayerLayer, PUMediaProvider, PUAssetViewModel; @protocol PUDisplayAsset, PXVKImageAnalysisInteraction, PUVideoTileViewControllerDelegate; @interface PUVideoTileViewController : PUTileViewController <PUAssetViewModelChangeObserver, PUBrowsingVideoPlayerChangeObserver, PXVideoSessionUIViewDelegate, PXChangeObserver, PUBrowsingVideoPlayerTimeObserver, PUBrowsingVideoPlayerVideoOutput, PXSettingsKeyObserver, PUVideoLayerSource, PXVKImageAnalysisInteractionDelegate> { struct { BOOL respondsToPresentingViewController; BOOL respondsToShouldShowVisualIntelligenceOverlay; BOOL respondsToShouldEnableSubjectLiftingForVisualIntelligenceOverlay; } _delegateFlags; UIView *_view; UIImageView *_placeholderImageView; UIImage *_preloadedImage; BOOL _hidePlaceholderImmediately; BOOL _waitForFocusValueForCrossfade; PXPixelBufferView *_pixelBufferView; UIView *_liveEffectRenderingDebugIndicator; } @property (retain, nonatomic) PXVideoSession *videoSession; @property (retain, nonatomic) PXVideoSessionUIView *videoView; @property (retain, nonatomic, setter=_setAsset:) id<PUDisplayAsset> asset; @property (nonatomic, setter=_setCurrentImageRequestID:) int _currentImageRequestID; @property (nonatomic, setter=_setTargetSize:) struct CGSize { double width; double height; } _targetSize; @property (nonatomic) struct CGSize { double width; double height; } requestedImageTargetSize; @property (retain, nonatomic, setter=_setBrowsingVideoPlayer:) PUBrowsingVideoPlayer *_browsingVideoPlayer; @property (nonatomic, setter=_setThumbnailRequestNumber:) long long _thumbnailRequestNumber; @property (nonatomic, setter=_setDisplayingFullQualityImage:) BOOL _isDisplayingFullQualityImage; @property (copy, nonatomic, setter=_setReadyForDisplayCompletionHandler:) id /* block */ _readyForDisplayCompletionHandler; @property (readonly, nonatomic) BOOL _isDisplayingVideo; @property (nonatomic) BOOL playerIsSeeking; @property (nonatomic) BOOL playerDidPlayToEnd; @property (nonatomic) BOOL placeholderVisible; @property (nonatomic) BOOL currentImageIsPlaceholder; @property (nonatomic) BOOL placeholderIsAnimatingToHidden; @property (nonatomic) BOOL placeholderHiddenBehindVideoView; @property (retain, nonatomic) id<PXVKImageAnalysisInteraction> imageInteraction; @property (retain, nonatomic) PUBrowsingViewModel *browsingViewModel; @property (retain, nonatomic) PUAssetViewModel *assetViewModel; @property (retain, nonatomic) PUMediaProvider *mediaProvider; @property (nonatomic) BOOL canPlayVideo; @property (nonatomic) BOOL isOnSecondScreen; @property (readonly, nonatomic) BOOL visualImageInteractionEnabled; @property (weak, nonatomic) id<PUVideoTileViewControllerDelegate> delegate; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly, nonatomic) BOOL videoOutputIsReadyForDisplay; @property (copy, nonatomic) id /* block */ readyForDisplayChangeHandler; @property (readonly, nonatomic) AVPlayerLayer *playerLayer; - (void)_updateVKAnalysisAndDisplayMode; - (id)generateAssetTransitionInfo; - (void)setPreloadedImage:(id)a0; - (void)_updateReadyForDisplay; - (void)setEdgeAntialiasingEnabled:(BOOL)a0; - (void)viewModel:(id)a0 didChange:(id)a1; - (void)_removeVKImageInteractionFromImageView; - (BOOL)_allowsVKRemoveBackground; - (id)presentingViewControllerForImageAnalysisInteraction:(id)a0; - (void)imageAnalysisInteractionDidDismissVisualSearchController:(id)a0; - (void)_handleAssetViewModel:(id)a0 didChange:(id)a1; - (void)applyLayoutInfo:(id)a0; - (void)didChangeAnimating; - (void)imageAnalysisInteraction:(id)a0 didTapVisualSearchIndicatorWithNormalizedBoundingBox:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1; - (void)observable:(id)a0 didChange:(unsigned long long)a1 context:(void *)a2; - (void)dealloc; - (void)videoPlayer:(id)a0 desiredSeekTimeDidChange:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1; - (void)becomeReusable; - (id)loadView; - (void)_handleBrowsingVideoPlayer:(id)a0 didChange:(id)a1; - (void)removeAllAnimations; - (void)settings:(id)a0 changedValueForKey:(id)a1; - (void).cxx_destruct; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })contentsRectForImageAnalysisInteraction:(id)a0; - (id)initWithReuseIdentifier:(id)a0; - (void)videoPlayer:(id)a0 currentTimeDidChange:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1; - (void)_updateImage; - (void)_updatePlaceholderVisibility; - (void)_updateTargetSize; - (void)videoSessionViewPlaceholderVisibilityChanged:(id)a0; - (void)didChangeActive; - (void)prepareForVideoResolutionChange; - (void)_callReadyToDisplayChangeHandler; - (id)_ensureVKImageInteractionCreated; - (void)_handleImageResult:(id)a0 info:(id)a1 synchronous:(BOOL)a2; - (void)_layoutLiveEffectsRenderDebugIndicator; - (void)_setImageResult:(id)a0 pixelBuffer:(struct __CVBuffer { } *)a1 info:(id)a2 synchronous:(BOOL)a3; - (void)_updateDebugBorders; - (void)_updateLiveEffectsRenderDebugIndicator; - (void)_updateLiveEffectsRenderDebugIndicatorVisibility; - (void)_updateVideo; - (BOOL)adoptAssetTransitionInfo:(id)a0; - (void)setPlaceholderVisible:(BOOL)a0 animated:(BOOL)a1 animationDuration:(double)a2 completion:(id /* block */)a3; @end