import { Context } from "koishi";
import { Config } from "../../../config";
import { BeatsaverAlert, BSMap, BSUserResponse, HashReqResponse } from "../interfaces/beatsaver";
export interface OAuthTokenResponse {
    "access_token": string;
    "token_type": string;
    expires_in: number;
    refresh_token: string;
    scope?: string;
}
export interface OAuthTokenInfoResponse {
    scope?: string[];
    id: string;
    name: string;
}
export declare const bsRequest: (ctx: Context, cfg: Config) => {
    refreshOAuthToken: (refreshToken: string) => Promise<OAuthTokenResponse>;
    getBSMapperById: (userId: string) => Promise<BSUserResponse>;
    getLatestMaps: (pageSize?: number) => Promise<BSMap[]>;
    searchMapByKeyword: (key: string) => Promise<BSMap[]>;
    searchMapById: (id: string) => Promise<BSMap>;
    getUnreadAlertsByPage: (accessToken: string, page: number) => Promise<BeatsaverAlert[]>;
    getTokenInfo: (accessToken: string) => Promise<OAuthTokenInfoResponse>;
    getMapsByHashes: (hashes: string[]) => Promise<HashReqResponse>;
};
