import type { Quester } from 'koishi'; export default class Auth { private static readonly RIOT_CLIENT_USER_AGENT; private _http; private _headers; private user_agent; constructor(http: Quester); static _extract_tokens(data: Record): { access_token: string; id_token: string; expires_in: string; }; static _extract_tokens_from_url(url: string): string[]; /** * 用于认证用户的函数 * @param username 要认证的用户名 * @param password 要认证的密码 * @returns 如果认证成功, 则返回包含认证数据的字典, 包括 cookie, 访问令牌和令牌 ID. * 如果认证需要 2FA, 则此函数返回一个包含 cookie 数据和提示用户输入 2FA 代码的消息的字典. * 否则, 此函数返回 null. */ authenticate(username: string, password: string): Promise>; /** * * @param accessToken 访问令牌 * @returns 返回对应的 jwt token */ getEntitlementsToken(accessToken: string): Promise; /** * 用于获取用户信息的方法 * @param accessToken 访问令牌 * @returns 返回包含 puuid, name, tag 的数组 */ getUserInfo(accessToken: string): Promise; /** * 用于获取区域的方法 * @param accessToken 访问令牌 * @param idToken 令牌 ID * @returns 区域的字符串 */ getRegion(accessToken: string, idToken: string): Promise; /** * 用于输入 2fa 验证码的方法 * @param code 2fa 验证码 * @param cookies cookie 字符串 * @returns 身份信息的对象 */ get2faCode(code: string, cookies: string): Promise>; /** * 用于兑换新的 cookie 的方法 * @param cookies cookie 字符串 * @returns 数组,包含兑换后的 cookie 和 access_token 和 entitlements_token */ redeemCookies(cookies: string): Promise; /** * 临时登录, 返回用户信息 * @param username 用户名 * @param password 密码 * @returns 返回玩家信息对象, 包含 puuid, playerName, region, headers */ tempAuth(username: string, password: string): Promise<{ puuid: string; playerName: string; region: string; headers: { 'Content-Type': string; 'X-Riot-Entitlements-JWT': string; Authorization: string; }; }>; /** * 使用 cookie 登录并返回包含访问令牌, 令牌 ID 和资格令牌的字典 * @param cookies cookie 字符串 * @returns 包含访问令牌, 令牌 ID, 资格令牌和 cookie 等字段的对象 */ loginWithCookies(cookies: string): Promise<{ cookies: string; accessToken: string; idToken: string; }>; /** * 刷新 cookie * @param refreshToken 需要刷新的 refresh_token * @returns 数组,包含兑换后的 cookie 和 access_token 和 entitlements_token */ refreshToken(refreshToken: string): Promise; }