UNPKG

osu-api-extended

Version:

Advanced osu! api wrapper for v1 and v2, with extra stuff

36 lines (35 loc) 2.06 kB
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 {};