@class NSArray, NSString, NSMutableDictionary, NSMapTable, MPAVItem, NSMutableArray, MPCPlaybackEngineEventStream; @protocol MPCQueueControllerBehaviorMusicSharePlay, MPCQueueControllerPlaybackEngine, MPCQueueControllerBehaviorImplementation, MPCQueueControllerBehaviorMusic, MPCQueueControllerUpNextBehavior, MPCQueueControllerReusableBehavior, MPCQueueControllerBehavior, MPCQueueControllerDelegate; @interface MPCQueueController : NSObject <MPCPlaybackEngineEventObserving, MPCQueueControllerBehaviorHost, MPCQueueControllerExternalSyncBehaviorHost, MPAVItemObserver, MSVSegmentedCoding> { long long _syncResetAttempts; unsigned long long _stateHandle; BOOL _loadingAdditionalItems; NSArray *_lastECATSStack; } @property (class, retain, nonatomic) Class testBehaviorClass; @property (class, readonly) BOOL supportsSecureCoding; @property (retain, nonatomic) NSMutableDictionary *coderVersions; @property (copy, nonatomic) NSString *loadingContentItemID; @property (retain, nonatomic) NSMapTable *activeEdits; @property (retain, nonatomic) NSMutableArray *potentialCurrentItemEdits; @property (copy, nonatomic) NSString *restoreLastStartTimePositionToContentItemID; @property (readonly, nonatomic) double lastSavedTime; @property (retain, nonatomic) id<MPCQueueControllerBehaviorImplementation> behaviorImpl; @property (readonly, copy, nonatomic) NSString *revisionString; @property (readonly, nonatomic) id<MPCQueueControllerBehavior> behavior; @property (readonly, nonatomic) id<MPCQueueControllerUpNextBehavior> upNextBehavior; @property (readonly, nonatomic) id<MPCQueueControllerReusableBehavior> reusableBehavior; @property (readonly, nonatomic) id<MPCQueueControllerBehaviorMusic> music; @property (readonly, nonatomic) id<MPCQueueControllerBehaviorMusicSharePlay> musicSharePlay; @property (readonly, nonatomic) long long behaviorType; @property (weak, nonatomic) id<MPCQueueControllerPlaybackEngine> playbackEngine; @property (weak, nonatomic) id<MPCQueueControllerDelegate> delegate; @property (readonly, nonatomic) BOOL containsRestorableContent; @property (readonly, nonatomic) NSString *sessionID; @property (readonly, copy, nonatomic) NSString *targetContentItemID; @property (readonly, nonatomic) long long targetContentItemSource; @property (readonly, nonatomic) MPAVItem *currentItem; @property (readonly, copy, nonatomic) NSString *preferredFirstContentItemID; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (readonly, nonatomic) NSString *engineID; @property (readonly, nonatomic) NSString *playerID; @property (readonly, nonatomic) MPCPlaybackEngineEventStream *eventStream; + (id)describePlayer:(id)a0; + (id)allKnownSessionTypes; + (long long)behaviorForQueue:(id)a0; + (BOOL)isSupportedSessionType:(id)a0 forEngine:(id)a1 reason:(id *)a2; + (void)registerPublisher:(id)a0; + (void)unregisterPublisher:(id)a0; - (void)engine:(id)a0 didChangeToState:(unsigned long long)a1; - (id)init; - (void)dealloc; - (void)encodeWithCoder:(id)a0; - (void)engine:(id)a0 didReachEndOfQueueWithReason:(id)a1; - (void).cxx_destruct; - (void)engine:(id)a0 didChangeItemElapsedTime:(double)a1 rate:(float)a2; - (id)initWithCoder:(id)a0; - (void)didRestoreVersion:(long long)a0 forSegment:(id)a1; - (id)segmentForCodingKey:(id)a0; - (long long)versionForSegment:(id)a0; - (void)_setTargetContentItemID:(id)a0 source:(long long)a1; - (id)_stateDictionaryIncludingQueue:(BOOL)a0; - (id)initWithBehaviorType:(long long)a0 sessionID:(id)a1; - (void)_commitEdit:(id)a0; - (id)_contentItemIDWithOffset:(long long)a0 fromItemID:(id)a1 mode:(long long)a2 didReachEnd:(BOOL *)a3; - (void)_currentItemDidChangeFromItem:(id)a0 toItem:(id)a1; - (void)_emitEventsForItemChangeFromItem:(id)a0 toCurrentItem:(id)a1; - (void)_evaluateContextAwareTriggersWithReason:(id)a0; - (void)_evaluateCurrentItemWithEdit:(id)a0; - (id)_itemForContentItemID:(id)a0 allowReuse:(BOOL)a1; - (BOOL)_playerItemDidBecomeActiveWithContentItemID:(id)a0; - (void)_rollbackEdit:(id)a0; - (void)_updateQueueIndexForItemIfNeeded:(id)a0; - (void)_withDynamicBehavior:(id /* block */)a0; - (void)_withExternalSyncBehavior:(id /* block */)a0; - (BOOL)_withRestorableBehavior:(id /* block */)a0; - (BOOL)_withTransportableBehavior:(id /* block */)a0; - (void)_withUpNextBehavior:(id /* block */)a0; - (id)beginEditWithReason:(id)a0; - (id)beginExternalSyncEditWithReason:(id)a0; - (void)behaviorDidChange; - (BOOL)canJumpToContentItemID:(id)a0 reason:(id *)a1; - (BOOL)canNextTrackForContentItemID:(id)a0 reason:(id *)a1; - (BOOL)canPreviousTrackForContentItemID:(id)a0 reason:(id *)a1; - (id)contentItemIDAtIndex:(long long)a0; - (id)contentItemIDWithCurrentItemOffset:(long long)a0 mode:(long long)a1 didReachEnd:(BOOL *)a2; - (id)contentItemIDsFromOffset:(long long)a0 toOffset:(long long)a1 mode:(long long)a2 nowPlayingIndex:(long long *)a3; - (void)didConnectToPlaybackEngine:(id)a0; - (void)didDisconnectFromPlaybackEngine:(id)a0; - (void)didSignificantlyChangeItem:(id)a0; - (long long)displayIndexForContentItemID:(id)a0; - (long long)displayItemCount; - (void)enumerateContentItemIDsInMode:(long long)a0 block:(id /* block */)a1; - (void)finalizeStateRestorationWithLoadingItemReady:(id /* block */)a0 completion:(id /* block */)a1; - (void)incrementVersionForSegment:(id)a0; - (BOOL)isExportableSessionType:(id)a0 forContentItemID:(id)a1 reason:(id *)a2; - (id)itemForContentItemID:(id)a0; - (id)itemForContentItemID:(id)a0 allowReuse:(BOOL)a1; - (void)jumpToContentItemID:(id)a0; - (void)jumpToContentItemID:(id)a0 direction:(long long)a1; - (void)jumpToFirstContentItemWithSource:(long long)a0; - (void)performAllowingEditsToChangeCurrentItem:(id /* block */)a0; - (void)performSetQueue:(id)a0 loadingItemReady:(id /* block */)a1 completion:(id /* block */)a2; - (void)playerItemDidBecomeCurrent:(id)a0; - (void)playerItemDidResignCurrent:(id)a0; - (void)willConnectToPlaybackEngine:(id)a0; - (void)willDisconnectFromPlaybackEngine:(id)a0; @end