koishi-plugin-yunzai
Version:
a yunzai adapter for koishi
35 lines (34 loc) • 1.4 kB
TypeScript
import { APIRegion, APIStencil, ActID } from "./interface/basicAPI.interface";
import { GetRegion, RegionType } from "./utils/Region";
export declare namespace BBSApi {
/**
* hostBy所指API地址
*/
export const region: APIRegion;
/**
* act_id
*/
export const actId: ActID;
/**
* 请求所用的API模板
*/
export const stencil: APIStencil;
type ApiList = keyof typeof stencil;
type AvailableRegions = keyof typeof region;
type AvailableUnion<K extends ApiList> = typeof stencil[K]['availableFor'][number];
export type For<R extends AvailableRegions> = {
[K in ApiList as R extends AvailableUnion<K> ? K : never]: typeof stencil[K];
};
/**
* 获取该地区支持的API
*/
export type Keys<R extends RegionType> = keyof For<GetRegion<R>>;
/**
* 获取API请求参数条件
*/
export type Params<R extends RegionType, A extends Keys<R>> = {
[K in For<GetRegion<R>>[A]['parameters'][number][0]]: ReturnType<For<GetRegion<R>>[A]['parameters'][number][1]>;
};
export type RequestTyper<R extends RegionType, K extends Keys<R> = Keys<R>> = K extends 'bbsSign' ? Sign : K extends 'bbsSignHome' ? SignHome : K extends 'bbsSignInfo' ? SignInfo : K extends 'dailyNote' ? DailyNote : K extends 'abyss' ? Abyss : K extends 'character' ? Character : any;
export {};
}