package net.anxuiz.tourney.vote;
import java.util.Collection;
import javax.annotation.Nullable;
import com.google.common.collect.ImmutableSet;
import net.anxuiz.tourney.MapClassification;
import tc.oc.api.docs.Entrant;
import tc.oc.pgm.map.PGMMap;
public interface VetoVote {
Collection<Entrant> getCurrentTurnRemainingTeams();
ImmutableSet<MapClassification> getRemainingClassifications();
ImmutableSet<PGMMap> getRemainingMaps();
Collection<Entrant> getParticipatingTeams();
/**
* Gets the communally-selected {@link MapClassification}, or
* <code>null</code> if none has been determined yet.
*
* @return The communally-selected {@link MapClassification}, or
* <code>null</code> if none has been determined yet.
*/
@Nullable
MapClassification getSelectedClassification();
/**
* Gets the communally-selected {@link PGMMap}, or <code>null</code> if none has been determined yet.
*
* @return The communally-selected {@link PGMMap}, or <code>null</code> if none has been determined yet.
*/
@Nullable
PGMMap getSelectedMap();
void registerVeto(Entrant entrant, PGMMap map);
void registerVeto(Entrant entrant, MapClassification classification);
/** Cycles the voting turn. */
void cycleTurn();
}