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 {};
