package com.faforever.client.api;
import com.faforever.client.io.ByteCountListener;
import com.faforever.client.leaderboard.Ranked1v1EntryBean;
import com.faforever.client.map.MapBean;
import com.faforever.client.mod.ModInfoBean;
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
/**
* Provides access to the FAF REST API. Services should not access this class directly, but use {@link
* com.faforever.client.remote.FafService} instead.
*/
public interface FafApiAccessor {
List<PlayerAchievement> getPlayerAchievements(int playerId);
@SuppressWarnings("unchecked")
List<PlayerEvent> getPlayerEvents(int playerId);
List<AchievementDefinition> getAchievementDefinitions();
AchievementDefinition getAchievementDefinition(String achievementId);
void authorize(int playerId);
List<ModInfoBean> getMods();
MapBean findMapByName(String mapId);
List<Ranked1v1EntryBean> getRanked1v1Entries();
Ranked1v1Stats getRanked1v1Stats();
Ranked1v1EntryBean getRanked1v1EntryForPlayer(int playerId);
History getRatingHistory(RatingType ratingType, int playerId);
List<MapBean> getMaps();
List<MapBean> getMostDownloadedMaps(int count);
List<MapBean> getMostPlayedMaps(int count);
List<MapBean> getBestRatedMaps(int count);
List<MapBean> getNewestMaps(int count);
void uploadMod(Path file, ByteCountListener listener) throws IOException;
void uploadMap(Path file, boolean isRanked, ByteCountListener listener) throws IOException;
}