osu-api-extended
Version:
Advanced osu! api wrapper for v1 and v2, with extra stuff
36 lines (35 loc) • 2.06 kB
TypeScript
import { IDefaultParams, IError, Modes_names } from "../../types";
import { ScoresListLeaderboardResponse } from "../../types/v2/scores_list_leaderboard";
import { ScoresListSoloScoresResponse } from "../../types/v2/scores_list_solo_scores";
import { ScoresListBeatmapBestResponse } from "../../types/v2/scores_list_beatmap_best";
import { ScoresListBeatmapAllResponse } from "../../types/v2/scores_list_beatmap_all";
import { ScoresListUserBestResponse } from "../../types/v2/scores_list_user_best";
import { ScoresListUserFirstsResponse } from "../../types/v2/scores_list_user_firsts";
import { ScoresListUserRecentResponse } from "../../types/v2/scores_list_user_recent";
import { ScoresListUserPinnedResponse } from "../../types/v2/scores_list_user_pinned";
type params = {
mode?: Modes_names;
} & ({
type: 'leaderboard' | 'solo_scores';
leaderboard_type?: 'global' | 'country' | 'friend';
beatmap_id: number;
mods?: string[];
} | {
type: 'beatmap_best';
beatmap_id: number;
user_id: number;
mods?: string[];
} | {
type: 'beatmap_all';
beatmap_id: number;
user_id: number;
} | {
type: 'user_best' | 'user_firsts' | 'user_recent' | 'user_pinned';
user_id: number;
include_fails?: boolean;
offset?: number;
limit?: number;
});
type Response<T extends params['type']> = T extends 'leaderboard' ? ScoresListLeaderboardResponse[] & IError : T extends 'solo_scores' ? ScoresListSoloScoresResponse[] & IError : T extends 'beatmap_best' ? ScoresListBeatmapBestResponse[] & IError : T extends 'beatmap_all' ? ScoresListBeatmapAllResponse[] & IError : T extends 'user_best' ? ScoresListUserBestResponse[] & IError : T extends 'user_firsts' ? ScoresListUserFirstsResponse[] & IError : T extends 'user_recent' ? ScoresListUserRecentResponse[] & IError : T extends 'user_pinned' ? ScoresListUserPinnedResponse[] & IError : IError;
export declare const scores_list: <T extends params>(params: T, addons?: IDefaultParams) => Promise<Response<T["type"]>>;
export {};