@class MPCPlayerPath, NSString, MSVLRUDictionary, NSMutableDictionary, MPCFuture, NSObject, NSMutableArray, NSMapTable; @protocol OS_dispatch_queue, MPArtworkDataSource; @interface MPCMediaRemoteController : NSObject <_MPArtworkCatalogOverlayDelegate, MSVLRUDictionaryDelegate, MPMediaRemoteEntityArtworkGenerator> { MPCFuture *_playbackStateFuture; MPCFuture *_supportedCommandsFuture; MPCFuture *_playingItemIdentifierFuture; NSString *_playingItemIdentifier; MPCFuture *_queueIdentifierFuture; NSString *_queueIdentifier; struct _MSVSignedRange { long long location; long long length; } _loadedContentItemsRange; struct _MSVSignedRange { long long location; long long length; } _requestedContentItemsRange; NSMutableArray *_contentItemIDs; MSVLRUDictionary *_contentItems; NSMutableDictionary *_optimisticStateContentItems; NSMutableDictionary *_contentItemChanges; MSVLRUDictionary *_contentItemArtwork; NSMutableDictionary *_contentItemArtworkIdentifiers; NSMapTable *_contentItemIDsFutures; NSMapTable *_contentItemFutures; NSMutableDictionary *_contentItemArtworkFutures; unsigned long long _stateHandle; } @property (class, readonly, nonatomic) NSObject *mediaRemoteReplyQueue; @property (retain, nonatomic) MPCPlayerPath *resolvedPlayerPath; @property (readonly, nonatomic) id mediaRemoteArtworkDataSource; @property (readonly, nonatomic) id remotePlayerArtworkDataSource; @property (retain, nonatomic) NSObject *accessQueue; @property (retain, nonatomic) NSObject *calloutQueue; @property (retain, nonatomic) id invalidationToken; @property (readonly, nonatomic) long long playbackStateCacheState; @property (readonly, nonatomic) MPCFuture *playbackState; @property (readonly, nonatomic) long long supportedCommandsCacheState; @property (readonly, nonatomic) MPCFuture *supportedCommands; @property (readonly, nonatomic) long long playingIdentifierCacheState; @property (readonly, nonatomic) MPCFuture *playingIdentifier; @property (readonly, nonatomic) long long queueIdentifierCacheState; @property (readonly, nonatomic) MPCFuture *queueIdentifier; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (BOOL)_shouldRegisterForNotifications; + (void)_sendCommand:(unsigned int)a0 options:(id)a1 appOptions:(unsigned int)a2 toPlayerPath:(id)a3 completion:(id /* block */)a4; + (void)_sendCommand:(unsigned int)a0 playbackIntent:(id)a1 options:(id)a2 toPlayerPath:(id)a3 completion:(id /* block */)a4; + (id)controllerForPlayerPath:(id)a0; + (void)sendCommand:(unsigned int)a0 options:(id)a1 toPlayerPath:(id)a2 completion:(id /* block */)a3; - (id)_onQueue_stateDictionary; - (long long)playQueueIdentifiersCacheStateForRange:(struct _MSVSignedRange { long long x0; long long x1; })a0; - (void)sendCommand:(unsigned int)a0 options:(id)a1 completion:(id /* block */)a2; - (void)dealloc; - (id)_init; - (long long)contentItemCacheStateForIdentifier:(id)a0; - (id)contentItemArtworkForContentItemIdentifier:(id)a0 artworkIdentifier:(id)a1 size:(struct CGSize { double x0; double x1; })a2; - (id /* block */)artworkCatalogBlockForContentItem:(id)a0; - (id)contentItemForIdentifier:(id)a0; - (void).cxx_destruct; - (id)playQueueIdentifiersForRange:(struct _MSVSignedRange { long long x0; long long x1; })a0; - (id)playQueueIdentifiersForRequest:(void *)a0; - (void)invalidateAllTokens; - (void)artworkCatalog:(id)a0 didClearFromView:(id)a1; - (void)artworkCatalog:(id)a0 didConfigureView:(id)a1 withRepresentation:(id)a2; - (void)artworkCatalog:(id)a0 willConfigureView:(id)a1; - (struct CGSize { double x0; double x1; })overlayScaledFittingSizeForCatalog:(id)a0 scaledFittingSize:(struct CGSize { double x0; double x1; })a1; - (id)overlayVisualIdenticalityForCatalog:(id)a0; - (void)dictionary:(id)a0 willRemoveObject:(id)a1 forKey:(id)a2; - (id)_legacyCommands; - (id /* block */)_artworkCatalogBlockForContentItem:(id)a0; - (void)_contentItemArtworkChangedNotification:(id)a0; - (id)_createExportableArtworkPropertiesForContentItem:(id)a0; - (id)_onQueue_identifiersForRange:(struct _MSVSignedRange { long long x0; long long x1; })a0; - (void)_onQueue_invalidateArtworkFuturesForContentItemID:(id)a0; - (void)_onQueue_mergeContentItems:(id)a0; - (void)_onQueue_mergeContentItems:(id)a0 queueRange:(struct _MSVSignedRange { long long x0; long long x1; })a1 requestRange:(struct _MSVSignedRange { long long x0; long long x1; })a2; - (void)_onQueue_purgeArtworkForContentItemIdentifier:(id)a0; - (void)_onQueue_purgeArtworkForContentItemIdentifier:(id)a0 artworkIdentifier:(id)a1; - (id /* block */)_onQueue_setOptimisticElapsedTimeForContentItem:(id)a0 elapsedTime:(double)a1 rate:(float)a2; - (id /* block */)_onQueue_setOptimisticPlaybackState:(unsigned int)a0 withOptions:(id)a1; - (id /* block */)_onQueue_setOptimisticPlayingItemIdentifier:(id)a0; - (void)_onQueue_setOptimisticReorderedPlaybackQueueWithMovingContentItemIdentifier:(id)a0 afterContentItemIdentifier:(id)a1; - (void)_onQueue_setOptimisticReorderedPlaybackQueueWithMovingContentItemIdentifier:(id)a0 beforeContentItemIdentifier:(id)a1; - (id /* block */)_onQueue_updateOptimisticStateForCommand:(unsigned int)a0 options:(id)a1; - (void)_playbackQueueChangedNotification:(id)a0; - (void)_playbackQueueContentItemsChangedNotification:(id)a0; - (void)_playbackStateDidChangeNotification:(id)a0; - (void)_supportedCommandsDidChangedNotification:(id)a0; - (long long)contentItemArtworkCacheStateForArtworkIdentifier:(id)a0 size:(struct CGSize { double x0; double x1; })a1; @end