@class NSDictionary, UIViewController, VideosExtrasPresenter, AVPlayerViewController, NSMutableArray, VUIDownloadDataSource, VUIPostPlayView, UIImage, NSString, NSArray, VUIProductPlacementView, VUIPlayer, VUINowPlayingFeatureMonitor, NSObject, UIButton, NSLayoutConstraint, VUIVideoAdvisoryView, VideosExtrasContext, UIAlertController, TVPStateMachine, NSDate, UIActivityItemsConfiguration, VUIVideoAdvisoryLogoImageDownloader, NSNumber; @protocol VUIControllerPresenter, VUIMultiPlayerDetailsViewController, UIActivityItemsConfigurationReading, TVPMediaItem, VUIPlaybackContainerViewController, VUIMultiPlayerViewController, OS_dispatch_queue, VUINowPlayingTabControllerDelegate; @interface VUIPlaybackManager : NSObject @property (class, readonly, nonatomic) VUIDownloadDataSource *downloadDataSource; @property (retain, nonatomic) VUIPlayer *mainPlayer; @property (retain, nonatomic) VUIPlayer *backgroundAudioPlayer; @property (retain, nonatomic) NSMutableArray *multiviewPlaybackInfo; @property (retain, nonatomic) VUIPlayer *extrasPlayer; @property (weak, nonatomic) VUIPlayer *activePlayer; @property (retain, nonatomic) TVPStateMachine *stateMachine; @property (retain, nonatomic) VideosExtrasContext *extrasContext; @property (retain, nonatomic) AVPlayerViewController *avPlayerViewController; @property (retain, nonatomic) AVPlayerViewController *mainAVPlayerViewController; @property (retain, nonatomic) AVPlayerViewController *extrasAVPlayerViewController; @property (weak, nonatomic) NSObject *presentingViewController; @property (nonatomic) long long dismissalOperation; @property (nonatomic) BOOL requiresLinearPlayback; @property (retain, nonatomic) NSDictionary *savedErrorUserInfo; @property (retain, nonatomic) id savedErrorContext; @property (retain, nonatomic) NSObject *audioSessionSerialQueue; @property (retain, nonatomic) UIAlertController *errorAlertController; @property (retain, nonatomic) UIViewController *playbackContainerViewController; @property (retain, nonatomic) UIViewController *multiPlayerViewController; @property (retain, nonatomic) UIViewController *multiPlayerDetailsViewController; @property (nonatomic, getter=isTrackingPlayerViewFrame) BOOL trackingPlayerViewFrame; @property (retain, nonatomic) UIActivityItemsConfiguration *itemsConfiguration; @property (retain, nonatomic) VideosExtrasPresenter *extrasPresenter; @property (retain, nonatomic) VUINowPlayingFeatureMonitor *featureMonitor; @property (retain, nonatomic) VUIPostPlayView *postPlayView; @property (nonatomic) unsigned long long autoPlayedVideosCount; @property (retain, nonatomic) NSDate *initialPlaybackStartDate; @property (nonatomic) BOOL configuredPostPlay; @property (retain, nonatomic) NSNumber *postPlayImpressionTime; @property (retain, nonatomic) NSDictionary *skipButtonImpressionMetrics; @property (retain, nonatomic) UIButton *skipButton; @property (retain, nonatomic) NSLayoutConstraint *skipCenterXConstraint; @property (retain, nonatomic) NSLayoutConstraint *skipBottomConstraint; @property (retain, nonatomic) NSLayoutConstraint *skipTrailingConstraint; @property (retain, nonatomic) VUIVideoAdvisoryLogoImageDownloader *logoImageDownloader; @property (retain, nonatomic) UIImage *ratingImage; @property (retain, nonatomic) UIImage *photoSensitivityImage; @property (retain, nonatomic) VUIVideoAdvisoryView *ratingView; @property (nonatomic) BOOL shouldDisplayTVRatingWhenVideoBoundsIsAvailable; @property (nonatomic) BOOL shouldAnimateTVRatingView; @property (retain, nonatomic) UIImage *productPlacementImage; @property (retain, nonatomic) VUIProductPlacementView *productPlacementView; @property (nonatomic) BOOL shouldDisplayProductPlacementWhenVideoBoundsIsAvailable; @property (nonatomic) BOOL shouldAnimateProductPlacementView; @property (retain, nonatomic) NSString *postPlayItemId; @property (retain, nonatomic) UIViewController *moreInfoCanonicalViewController; @property (readonly, nonatomic) BOOL isFullscreenPlaybackUIBeingShown; @property (readonly, nonatomic) BOOL isShowingExtras; @property (readonly, nonatomic) BOOL isPlaybackUIBeingShown; @property (readonly, nonatomic) BOOL isPIPing; @property (readonly, nonatomic, getter=isPostPlayActive) BOOL postPlayActive; @property (readonly, nonatomic) NSObject *currentMediaItem; @property (readonly, nonatomic) BOOL currentPlaylistAllowsCellular; @property (readonly, nonatomic) BOOL allowedToAutoPlay; @property (readonly, nonatomic) long long multiviewPlayerCount; @property (readonly, nonatomic) long long maxMultiviewPlayerCount; @property (readonly, nonatomic) NSObject *fullScreenViewControllerForPresentation; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly, nonatomic) id activityItemsConfiguration; @property (readonly, nonatomic) NSArray *multiviewIdentifiers; @property (readonly, nonatomic) AVPlayerViewController *playerViewController; @property (readonly, nonatomic) id nowPlayingControllerDelegate; + (id)sharedInstance; + (BOOL)_isFullScreenPlaybackState:(id)a0; + (BOOL)_isShowingExtrasState:(id)a0; - (void)_applicationWillEnterForeground:(id)a0; - (void)_applicationWillResignActive:(id)a0; - (void)_applicationDidBecomeActive:(id)a0; - (id)init; - (void)_applicationDidEnterBackground:(id)a0; - (void)startPictureInPicture; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (void)playerViewController:(id)a0 willTransitionToVisibilityOfPlaybackControls:(BOOL)a1 withAnimationCoordinator:(id)a2; - (void)playerViewController:(id)a0 failedToStartPictureInPictureWithError:(id)a1; - (void)playerViewController:(id)a0 restoreUserInterfaceForPictureInPictureStopWithCompletionHandler:(id /* block */)a1; - (void)playerViewController:(id)a0 willEndFullScreenPresentationWithAnimationCoordinator:(id)a1; - (void)playerViewControllerDidStartPictureInPicture:(id)a0; - (void)playerViewControllerDidStopPictureInPicture:(id)a0; - (void)playerViewControllerWillStartPictureInPicture:(id)a0; - (void)playerViewControllerWillStopPictureInPicture:(id)a0; - (void)playerViewController:(id)a0 contentViewWillTransitionToSize:(struct CGSize { double x0; double x1; })a1 withTransitionCoordinator:(id)a2; - (id)playerViewController:(id)a0 displayNameForMediaSelectionOption:(id)a1; - (id)playerViewController:(id)a0 targetViewForDismissalAnimationWithProposedTargetView:(id)a1; - (void)_networkReachbilityDidChange:(id)a0; - (void)_playerRateDidChange:(id)a0; - (void)_addVideoDimmingViewForPostPlay; - (void)_externalPlaybackTypeDidChange:(id)a0; - (void)_pushMoreInfoControllerIfNeeded; - (void)_showStillWatchingAlertFeature:(id)a0; - (void)extrasMenuItemSelected:(id)a0 atIndex:(unsigned long long)a1; - (void)extrasRequestReloadWithContext:(id)a0; - (void)_addProductPlacementFeatureFromMediaItem:(id)a0; - (void)_addRollsInfoFeaturesFromMediaItem:(id)a0; - (void)_addSkipInfoFeaturesFromMediaItem:(id)a0; - (void)_addTVRatingFeatureFromMediaItem:(id)a0; - (void)_addTappableViewToRemoveSkipButton; - (void)_avPlayerViewControllerPresentationDidTimeout; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })_calculatePostPlayPipRectForParent:(id)a0; - (void)_clearActivityItemsConfiguration; - (void)_configureStillWatchingFeatureMonitoringIfLivePlayback; - (void)_currentMediaItemDidChange:(id)a0; - (id)_currentlyPlayingMultiviewInfo; - (id)_deepLinkPlaybackURLForCurrentMediaItem; - (void)_dismissPostPlayWithSwipe:(id)a0; - (void)_donateUserActivityForMediaItem:(id)a0; - (void)_downloadProductPlacementImageIfAvailable:(id)a0; - (void)_downloadRatingImageIfAvailable:(id)a0; - (void)_handleDismissSkipButtonGesture:(id)a0; - (void)_handleTapAwayFromPostPlayGesture:(id)a0; - (BOOL)_isNewPostPlayEnabled; - (void)_markMainPlayerMediaItemPlayingPictureInPictureMetadataAsActive:(BOOL)a0 forAVPlayerViewController:(id)a1; - (void)_markMainPlayerMediaItemPostPlayActive:(BOOL)a0; - (BOOL)_multiviewContainsMediaInfo:(id)a0; - (void)_notifyAVPlayerViewControllerDisplaySize; - (void)_playbackErrorDidOccur:(id)a0; - (void)_playbackStateDidChange:(id)a0; - (void)_postPlayItemSelected:(id)a0; - (void)_recordSkipButtonImpressions; - (void)_registerApplicationNotifications; - (void)_registerStateMachineHandlers; - (void)_removeMoreInfoViewControllerIfNeeded; - (void)_removeTappableViewForSkipButtonIfNeeded; - (void)_removeVideoDimmingViewForPostPlay; - (void)_resetAutoPlayBingeWatchingQualifications; - (void)_setExtrasButtonVisible:(BOOL)a0; - (void)_setupBootstrapPostPlayFeatureMonitorForMediaItem:(id)a0; - (void)_setupFeaturesFromMainPlayersCurrentMediaItem; - (void)_setupInfoTab:(BOOL)a0; - (void)_showOrUpdateAdvisoryViewsIfNeeded; - (void)_showProductPlacement:(BOOL)a0 withImage:(id)a1 animated:(BOOL)a2; - (void)_showSkipButtonWithTitle:(id)a0 show:(BOOL)a1 animated:(BOOL)a2; - (void)_showTVRating:(BOOL)a0 withRatingImage:(id)a1 photoSensitivityImage:(id)a2 animated:(BOOL)a3; - (void)_skipButtonTapped:(id)a0; - (void)_startPlaybackFromBeginning; - (void)_unmuteNextAvailableMultiviewPlayer; - (void)_updateActivityItemsConfigurationWithSharedWatchId:(id)a0 sharedWatchUrl:(id)a1 previewMetadata:(id)a2 mediaItem:(id)a3; - (void)_updateMultiviewButtonState; - (void)_updateRequiresLinearPlayback; - (void)_updateStopWhenBackgroundedFeatureForApplicationState:(long long)a0 isFullScreen:(BOOL)a1; - (void)_updateTimeBoundFeature:(id)a0 animated:(BOOL)a1; - (void)_updateTimeTriggeredFeature:(id)a0 animated:(BOOL)a1; - (void)addPlaylistToMultiview:(id)a0 animated:(BOOL)a1 completion:(id /* block */)a2; - (void)addPlaylistToMultiview:(id)a0 atIndex:(long long)a1 animated:(BOOL)a2 completion:(id /* block */)a3; - (void)autoPlayTimerDidCompleteForPostPlayView:(id)a0; - (void)configureAudioSessionForBackgroundPlayback:(BOOL)a0 usingPlaybackCategory:(BOOL)a1; - (id)createPlayerViewController; - (id)detailsViewControllerForMultiPlayerViewController:(id)a0; - (double)detailsViewHeightForMultiPlayerViewController:(id)a0; - (void)dismissPlaybackAnimated:(BOOL)a0 leaveGroupActivitySession:(BOOL)a1 completion:(id /* block */)a2; - (void)dismissPostPlayAnimated:(BOOL)a0; - (void)extrasBackButtonPressed; - (void)extrasContext:(id)a0 extrasVisibilityNeedsUpdate:(BOOL)a1; - (void)extrasContext:(id)a0 hadFatalError:(id)a1; - (void)extrasContextDidLoadMainMenuItems:(id)a0; - (void)extrasDoneButtonPressed; - (void)extrasRequestsMediaPlayback:(id)a0 isBackground:(BOOL)a1; - (void)extrasRequestsPlaybackStop; - (void)featureMonitor:(id)a0 featureDidChangeState:(id)a1 animated:(BOOL)a2; - (unsigned long long)indexOfMediaItemInMultiviewWithIdentifier:(id)a0; - (BOOL)isPlaylistBeingPresented:(id)a0; - (void)mediaInfoDidChangeTo:(id)a0 canPlay:(BOOL)a1 wasAutoPlayed:(BOOL)a2; - (void)multiPlayerViewController:(id)a0 detailsViewControllerDidAppear:(id)a1; - (void)multiPlayerViewController:(id)a0 detailsViewControllerDidDisappear:(id)a1; - (void)multiPlayerViewController:(id)a0 detailsViewControllerWillAppear:(id)a1; - (void)multiPlayerViewController:(id)a0 detailsViewControllerWillDisappear:(id)a1; - (void)multiPlayerViewController:(id)a0 didBeginDropWithMediaInfo:(id)a1; - (void)multiPlayerViewController:(id)a0 didCrossSupportedScreenSizeBoundary:(BOOL)a1; - (void)multiPlayerViewController:(id)a0 didDismissWithPlayerViewController:(id)a1 withReason:(unsigned long long)a2; - (void)multiPlayerViewController:(id)a0 didDropWithMediaInfo:(id)a1 overPlayerAtIndex:(long long)a2; - (void)multiPlayerViewController:(id)a0 didEndDropWithMediaInfo:(id)a1; - (void)multiPlayerViewController:(id)a0 didEnterFullscreenWithPlayerViewController:(id)a1; - (void)multiPlayerViewController:(id)a0 didExitFullscreenWithPlayerViewController:(id)a1; - (void)multiPlayerViewController:(id)a0 didPinchPlayerToDismiss:(id)a1; - (void)multiPlayerViewController:(id)a0 didRemovePlayer:(id)a1 atIndex:(long long)a2; - (void)multiPlayerViewController:(id)a0 didSelectPlayerViewController:(id)a1; - (void)multiPlayerViewController:(id)a0 didSwapPlayerViewControllerAtIndex:(long long)a1 withPlayerAtIndex:(long long)a2; - (void)multiPlayerViewController:(id)a0 willDismissWithPlayerViewController:(id)a1 withReason:(unsigned long long)a2; - (BOOL)multiviewContainsMediaItemWithIdentifier:(id)a0; - (void)nowPlayingTabControllerMediaInfoDidChangeTo:(id)a0 canPlay:(BOOL)a1 wasAutoPlayed:(BOOL)a2; - (void)playbackContainerViewControllerBackgroundPlaybackWillBegin:(id)a0; - (void)playbackContainerViewControllerDidAutoPlay:(id)a0; - (void)playbackContainerViewControllerDidDisappear:(id)a0; - (void)playbackContainerViewControllerDidFinishLoadingPostPlay:(id)a0; - (void)playbackContainerViewControllerExitPictureInPicturePressed:(id)a0; - (struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })playbackContainerViewControllerPiPFrameForCurrentPlayback:(id)a0; - (void)presentExtrasWithURL:(id)a0 storeID:(id)a1 actionParams:(id)a2 fromViewController:(id)a3 completion:(id /* block */)a4; - (void)presentMultiviewWithPlaylists:(id)a0 fromViewController:(id)a1 animated:(BOOL)a2; - (void)presentPlaylist:(id)a0 fromViewController:(id)a1 dismissalOperation:(long long)a2 allowsCellular:(BOOL)a3 animated:(BOOL)a4 completion:(id /* block */)a5; - (void)presentPlaylist:(id)a0 fromViewController:(id)a1 dismissalOperation:(long long)a2 allowsCellular:(BOOL)a3 animated:(BOOL)a4 userInfo:(id)a5 completion:(id /* block */)a6; - (void)presentPlaylist:(id)a0 fromViewController:(id)a1 dismissalOperation:(long long)a2 animated:(BOOL)a3 completion:(id /* block */)a4; - (void)removePlaylistFromMultiview:(id)a0 animated:(BOOL)a1; - (void)replacePlaylistInMultiviewAtIndex:(long long)a0 withPlaylist:(id)a1 animated:(BOOL)a2; @end