import { Context, Logger, Schema, Service } from "koishi"; import { AxiosInstance } from 'axios'; import { CookieJar } from 'tough-cookie'; import { Notifier } from "@koishijs/plugin-notifier"; declare module 'koishi' { interface Context { biliApi: BiliAPI; } } declare class BiliAPI extends Service { static inject: string[]; jar: CookieJar; client: AxiosInstance; apiConfig: BiliAPI.Config; loginData: any; loginNotifier: Notifier; refreshCookieTimer: Function; loginInfoIsLoaded: boolean; log: Logger; constructor(ctx: Context, config: BiliAPI.Config); protected start(): void | Promise; protected get(url: string): Promise; getServerUTCTime(): Promise; checkFollow(uid: number): Promise>; private setFollowRelation; getDynamicDetail(did: string): Promise>; followUser(uid: number): Promise; unfollowUser(uid: number): Promise; getFollowGroups(): Promise>; checkLivesByUids(uids: number[]): Promise>; createFollowGroup(name: string): Promise>; cpToGroup(uid: number[], gid: number[]): Promise; private addToGroup; delFromGroup(uid: number[]): Promise; getDynamicList(): Promise>>; getTimeNow(): Promise; getUserSpaceDynamic(mid: string): Promise; getCookieInfo(refreshToken: string): Promise; getUserInfo(mid: number): Promise; getMyselfInfo(): Promise; getLoginQRCode(): Promise; getLoginStatus(qrcodeKey: string): Promise; getLiveRoomInfo(roomId: string): Promise; getMasterInfo(mid: number): Promise; disposeNotifier(): void; getRandomUserAgent(): string; createNewClient(): void; getTimeOfUTC8(): number; getCookies(): string; getLoginInfoIsLoaded(): boolean; getLoginInfoFromDB(): Promise<{ cookies: any; refresh_token: string; }>; loadCookiesFromDatabase(): Promise; enableRefreshCookiesDetect(): void; checkIfTokenNeedRefresh(refreshToken: string, csrf: string, times?: number): Promise; } declare namespace BiliAPI { interface Config { userAgent: string; } const Config: Schema; } export default BiliAPI;