import { beatmap_category, beatmap_sorting, beatmap_statuses, Modes_names, beatmap_genres, beatmap_languages, beatmap_ranks, beatmap_extra, IDefaultParams, IError } from "../../types";
import { SearchBeatmaps, SearchWiki } from '../../types/v2/search_all';
type params = ({
    type: 'site';
    location?: 'all' | 'user' | 'wiki_page';
    query?: string;
    page?: number;
} | {
    _played?: boolean;
    _nsfw?: boolean;
    type: 'beatmaps';
    query?: string;
    mode?: Modes_names | number;
    status?: beatmap_statuses;
    category?: (beatmap_category)[];
    genre?: beatmap_genres | number;
    language?: beatmap_languages | number;
    achieved_rank?: (beatmap_ranks)[];
    extra?: (beatmap_extra)[];
    sort?: beatmap_sorting;
    cursor_string?: string;
});
type Response<T extends params['type']> = T extends 'site' ? SearchWiki & IError : T extends 'beatmaps' ? SearchBeatmaps & IError : IError;
export declare const search_all: <T extends params>(params: T, addons?: IDefaultParams) => Promise<Response<T["type"]>>;
export {};
