export declare class AbsRes { code: number; msg: string; data: any; constructor(); contentType(): string; stat(code: number, msg?: string): this; put(data: any): this; encode(): any; out(ctx: AbsHttpCtx): void; free(): this; edit(datas: { [index: string]: any; }, free?: boolean): this; } export declare class TextRes extends AbsRes { } export declare class XmlRes extends AbsRes { contentType(): string; out(ctx: AbsHttpCtx): void; } export declare class XmlDataRes extends XmlRes { out(ctx: AbsHttpCtx): void; } export declare class JsonRes extends AbsRes { contentType(): string; encode(): any; out(ctx: AbsHttpCtx): void; } export declare class MsgpackRes extends AbsRes { contentType(): string; encode(): any; out(ctx: AbsHttpCtx): void; } export declare abstract class AbsHttpCtx { pathArgs: string[]; pathArg: string; writer: AbsRes & { path?: string; }; _attrs: { [index: string]: any; }; attrSet(k: string, v: any): void; attrGet(k: string): T; get debugMark(): any; set debugMark(v: any); abstract hasFile(k: string): boolean; abstract getFileInfo(k: string): { fileName: string; contentType: string; body: Class_SeekableStream; }; abstract getPath(): string; abstract isHadBody(): boolean; abstract hasParam(k: string): boolean; abstract hasQuery(k: string): boolean; abstract hasPart(k: string): boolean; abstract getBody(): any; abstract getQuery(): any; abstract getHeaders(): any; abstract getCookie(k: string): string; abstract getSocket(): Class_Socket; abstract findParam(k: string): any; abstract writeHeader(headers: any): any; abstract addCookie(cookie: Class_HttpCookie): any; abstract sendJson(obj: any, contentType?: string): any; abstract sendMsgpack(obj: any, contentType?: string): any; abstract sendXml(xml: any, contentType?: string): any; abstract sendStr(html: string | Class_Buffer, contentType?: string): any; abstract sendBuf(buf: Class_Buffer, contentType?: string): any; abstract isReal(): boolean; abstract free(): void; /** * api处理完后处理 * @param fn 处理方法 * @param args 处理方法的参数 * @param uniqueFnId 唯一ID防止重复执行 */ abstract after(fn: Function, args?: any[], uniqueFnId?: string): any; abstract runAfters(): any; protected debug(obj: any): void; } export declare class ApiHttpCtx extends AbsHttpCtx { req: Class_HttpRequest; res: Class_HttpResponse; private b; constructor(req: Class_HttpRequest, pathArgs?: string[], writer?: AbsRes); isHadBody(): boolean; isCtForm(tag?: string): boolean; isCtJson(): boolean; isCtXml(): boolean; isCtMsgpack(): boolean; getBody(): any; hasParam(k: string): boolean; hasQuery(k: string): boolean; hasPart(k: string): boolean; hasFile(k: string): boolean; getMethod(): string; getPath(): string; findParam(k: string): any; getQuery(): Class_HttpCollection; getHeaders(): Class_HttpCollection; getCookie(k: string): string; getFileInfo(k: string): { fileName: string; contentType: string; body: Class_SeekableStream; }; getSocket(): Class_Socket; writeStatus(statusCode: number, statusMessage?: string, headers?: any): void; writeHeader(headers: any): void; addCookie(cookie: Class_HttpCookie): void; sendJson(obj: any, contentType?: string): void; sendMsgpack(obj: any, contentType?: string): void; sendXml(xml: any, contentType?: string): void; sendStr(html: string | Class_Buffer, contentType?: string): void; sendBuf(buf: Class_Buffer, contentType?: string): void; private send_res; sendCors(orgin?: any, alowHeaders?: string, exposeHeaders?: string): boolean; isReal(): boolean; /** * 跳转到url * @param url */ redirect(url: string): void; /** * 释放内部引用 */ free(): void; private afters; private afterI; after(fn: Function, args?: any[], uniqueFnId?: string): void; runAfters(): void; } export declare class WsApiHttpCtx extends AbsHttpCtx { private static EMPTY; private src; private con; private _path; private paramArg; private headerArg; constructor(con: any, msg: [number, string | number, any, any, any]); hasFile(k: string): boolean; getFileInfo(k: string): any; getPath(): string; isHadBody(): boolean; hasParam(k: string): boolean; hasQuery(k: string): boolean; hasPart(k: string): any; private getParams; getBody(): any; getQuery(): any; getHeaders(): any; getCookie(): string; getSocket(): any; findParam(k: string): any; writeHeader(headers: any): void; addCookie(cookie: Class_HttpCookie): void; sendJson(obj: any, contentType?: string): void; sendMsgpack(obj: any, contentType?: string): void; sendXml(xml: any, contentType?: string): void; sendStr(str: string | Class_Buffer, contentType?: string): void; sendBuf(buf: Class_Buffer, contentType?: string): void; protected sendTo(buf: Class_Buffer, isBlob: boolean, contentType?: string): void; isReal(): boolean; /** * 释放内部引用 */ free(): void; private afters; private afterI; after(fn: Function, args?: any[], uniqueFnId?: string): void; runAfters(): void; } export declare class ApiRunError extends Error { code: number; constructor(message: string, code?: number); } export interface BaseParamRule { option?: boolean; default?: any; min?: number | bigint; max?: number | bigint; in?: Array; regexp?: RegExp; each?: boolean; } export interface ApiParamRule extends BaseParamRule { src?: string; name?: string; check_convert?: (d: any) => any; separator?: string; type?: Function; desc?: string; multline?: boolean; } /** * 检测参数是否符合规则 * @param type 参数的类型定义 * @param val 测试的实际值 * @param rule 设置的测试规则 * @constructor */ export declare function CheckBaseParamRule(type: any, val: any, rule: BaseParamRule): boolean; export interface ApiRouting { method: string; path: string; code: number; key: string; rules: Array; filter?: ApiFilterHandler; res?: new () => AbsRes; absolute?: boolean; } export interface ApiFilterHandler { (ctx: AbsHttpCtx): boolean; } interface ApiRoute { path?: string; filter?: ApiFilterHandler; res?: new () => AbsRes; } export interface ApiMethod extends ApiRoute { absolute?: boolean; } export interface ApiClass extends ApiRoute { baseRules?: Array; } export {};