osu-api-extended
Version:
Advanced osu! api wrapper cover all V2 and V1 endpoints, and provide useful tools
41 lines (40 loc) • 2.45 kB
TypeScript
import { IDefaultParams, IError, Modes_names } from "../../types";
import { scores_list_leaderboard_response } from "../../types/v2/scores_list_leaderboard";
import { scores_list_solo_scores_response } from "../../types/v2/scores_list_solo_scores";
import { scores_list_user_beatmap_best_response } from "../../types/v2/scores_list_user_beatmap_best";
import { scores_list_user_beatmap_all_response } from "../../types/v2/scores_list_user_beatmap_all";
import { scores_list_user_user_best_response } from "../../types/v2/scores_list_user_best";
import { scores_list_user_user_firsts_response } from "../../types/v2/scores_list_user_firsts";
import { scores_list_user_recent_response } from "../../types/v2/scores_list_user_recent";
import { scores_list_user_user_pinned_response } from "../../types/v2/scores_list_user_pinned";
import { scores_list_latest_ranked_response } from "../../types/v2/scores_list_latest_ranked";
type params = {
mode?: Modes_names;
} & ({
type: 'leaderboard' | 'solo_scores';
leaderboard_type?: 'global' | 'country' | 'friend';
beatmap_id: number;
mods?: string[];
} | {
type: 'user_beatmap_best';
beatmap_id: number;
user_id: number;
mods?: string[];
} | {
type: 'user_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: 'latest_ranked';
mode: Modes_names;
cursor_string?: string;
});
type Response<T extends params['type']> = T extends 'leaderboard' ? scores_list_leaderboard_response[] & IError : T extends 'solo_scores' ? scores_list_solo_scores_response[] & IError : T extends 'beatmap_best' ? scores_list_user_beatmap_best_response[] & IError : T extends 'beatmap_all' ? scores_list_user_beatmap_all_response[] & IError : T extends 'user_best' ? scores_list_user_user_best_response[] & IError : T extends 'user_firsts' ? scores_list_user_user_firsts_response[] & IError : T extends 'user_recent' ? scores_list_user_recent_response[] & IError : T extends 'user_pinned' ? scores_list_user_user_pinned_response[] & IError : T extends 'latest_ranked' ? scores_list_latest_ranked_response & IError : IError;
export declare const scores_list: <T extends params>(params: T, addons?: IDefaultParams) => Promise<Response<T["type"]>>;
export {};