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<string, any>): {
        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<Record<string, any>>;
    /**
     *
     * @param accessToken 访问令牌
     * @returns 返回对应的 jwt token
     */
    getEntitlementsToken(accessToken: string): Promise<string>;
    /**
     * 用于获取用户信息的方法
     * @param accessToken 访问令牌
     * @returns 返回包含 puuid, name, tag 的数组
     */
    getUserInfo(accessToken: string): Promise<string[]>;
    /**
     * 用于获取区域的方法
     * @param accessToken 访问令牌
     * @param idToken 令牌 ID
     * @returns 区域的字符串
     */
    getRegion(accessToken: string, idToken: string): Promise<string>;
    /**
     * 用于输入 2fa 验证码的方法
     * @param code 2fa 验证码
     * @param cookies cookie 字符串
     * @returns 身份信息的对象
     */
    get2faCode(code: string, cookies: string): Promise<Record<string, any>>;
    /**
     * 用于兑换新的 cookie 的方法
     * @param cookies cookie 字符串
     * @returns 数组，包含兑换后的 cookie 和 access_token 和 entitlements_token
     */
    redeemCookies(cookies: string): Promise<string[]>;
    /**
     * 临时登录, 返回用户信息
     * @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<string[]>;
}
