@class NSString, GKMultiplayerParticipant, NSMutableDictionary, NSMutableOrderedSet, NSArray, NSSet, GKGame; @protocol GKMultiplayerDataSourceDelegate; @interface GKMultiplayerDataSource : GKBasicCollectionViewDataSource <UICollectionViewDelegateFlowLayout> @property (retain, nonatomic) NSMutableDictionary *playerStatus; @property (retain, nonatomic) NSMutableOrderedSet *players; @property (retain, nonatomic) NSMutableOrderedSet *orderedPlayerIDList; @property (nonatomic) long long automatchPlayersAddedByUser; @property (retain, nonatomic) GKMultiplayerParticipant *placeholderItem; @property (nonatomic) struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } automatchPlayerCountLock; @property (weak, nonatomic) id<GKMultiplayerDataSourceDelegate> delegate; @property (nonatomic) long long minPlayers; @property (nonatomic) long long maxPlayers; @property (nonatomic) long long automatchPlayerCount; @property (nonatomic) long long implicitAutomatchPlayerCount; @property (nonatomic) BOOL automatchAddedToMinInHeader; @property (nonatomic) BOOL removingEnabled; @property (nonatomic) BOOL invitingEnabled; @property (readonly, nonatomic) BOOL autoMatching; @property (readonly, nonatomic) BOOL canCancelCurrentMatchmaking; @property (readonly, nonatomic) BOOL haveNonGuestPlayers; @property (nonatomic) BOOL sharePlayEnabled; @property (readonly, nonatomic) NSArray *participants; @property (retain, nonatomic) NSSet *selectedMessageGroups; @property (retain, nonatomic) GKGame *game; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (id)init; - (void).cxx_destruct; - (long long)collectionView:(id)a0 numberOfItemsInSection:(long long)a1; - (id)collectionView:(id)a0 cellForItemAtIndexPath:(id)a1; - (void)didChangeMode; - (void)addPlayers:(id)a0 withStatus:(long long)a1 complete:(id /* block */)a2; - (void)clearDataSource; - (void)addPlayers:(id)a0 withStatus:(long long)a1 replaceAutomatches:(BOOL)a2 complete:(id /* block */)a3; - (id)collectionViewDebugDescription; - (void)configureCollectionView:(id)a0; - (id)connectingPlayers; - (id)currentPlayers; - (id)currentPlayersDebugDescription; - (id)currentPlayersNotInvitedViaMessages; - (id)currentRemotePlayers; - (void)failedToInvitePlayers:(id)a0; - (id)firstInvitedContactPlayer; - (id)guestPlayers; - (BOOL)havePendingPlayers; - (long long)maxAvailablePlayers; - (id)participantForAutoMatchNumber:(long long)a0; - (id)participantForPlayer:(id)a0; - (BOOL)participantShouldBeRemovable:(id)a0 atIndexPath:(id)a1; - (struct _NSRange { unsigned long long x0; unsigned long long x1; })playerRange; - (id)playersDebugDescription:(id)a0 newStatus:(long long)a1; - (id)playersInvited; - (id)playersToBeInvited; - (id)playersWithStatus:(long long)a0; - (void)prepopulateConversationParticipants:(id)a0 complete:(id /* block */)a1; - (id)readyPlayers; - (void)recordButtonClickAction:(id)a0 targetId:(id)a1; - (void)recordRemoveFriendClickAction:(id)a0; - (void)refreshContentsForDataType:(unsigned int)a0 userInfo:(id)a1 updateNotifier:(id)a2; - (void)refreshParticipantsStatuses; - (void)refreshStatusForParticipant:(id)a0; - (void)removePlayers:(id)a0 complete:(id /* block */)a1; - (void)removePrepopulatedPlayersIfExisted:(id)a0 completionHandler:(id /* block */)a1; - (void)replacePlayers:(id)a0 withGKPlayers:(id)a1 completionHandler:(id /* block */)a2; - (void)replacePrepopulatedPlayerWithNormalPlayer:(id)a0 participantServerIdentifier:(id)a1 completionHandler:(id /* block */)a2; - (void)reportMultiplayerSelection:(id)a0; - (void)restoreOrderOfPlayers; - (void)revertFailedPlayers; - (void)setAutomatchPlayerCount:(long long)a0 complete:(id /* block */)a1; - (void)setParticipantsWithPlayers:(id)a0 automatchPlayerCount:(long long)a1 shouldUpdateAutomatchPlayerCount:(BOOL)a2 andStatuses:(id)a3 complete:(id /* block */)a4; - (void)setStatus:(long long)a0 forPlayers:(id)a1 complete:(id /* block */)a2; - (void)setStatus:(long long)a0 forPlayers:(id)a1 uuid:(id)a2; - (id)shareplayInvitedPlayers; - (id)shareplayPrepopulatedPlayers; - (BOOL)shouldRevertStatus:(long long)a0; - (BOOL)shouldUpdateStatus:(long long)a0 withNewStatus:(long long)a1; - (long long)statusForPlayer:(id)a0; - (void)updateDataStructuresForRemovedPlayer:(id)a0; - (void)updateParticipants; @end