import { ResponseType as AxiosResponseType } from 'axios'; /** *

REQUEST 功能型装饰器:放弃加入请求队列。

* @desc REQUEST Functional Decorator: Permit request. * * @desc {方法装饰器} * @desc {Method Decorator} * * @effect 受影响参数类型 AxiosRequestConfig * @effect Affected parameter type: AxiosRequestConfig * * @example * ```typescript * @RequestMapping("/proxy/user") * class UserService { * @RequestQueuePermit * @GetMapping("/{groupId}/{id}") * async fetchUser(groupId: number, id: number) {} * } * ``` */ declare function RequestQueuePermit(target: any, propertyKey: string): void; /** *

REQUEST 功能型装饰器:映射参数别名。

* @desc REQUEST Functional Decorator: Map parameter alias. * * @desc {参数装饰器} 用于后端需求参数是前端保留关键字,如 `delete` 等。 * @desc {Parameter Decorator} Used when backend requires parameters that are frontend reserved keywords, such as `delete`. * * @param {string} alias 请求参数的别名 * @param {string} alias The name of the request parameter * * @example * ```typescript * @RequestMapping("/proxy/file") * class FileService { * @GetMapping("/download") * async downloadFile(@RequestParam("delete") isDelete: boolean, filePath: string) {} * } * ``` */ declare function RequestParam(alias: string): (target: Object, propertyKey: string | symbol, parameterIndex: number) => void; /** *

REQUEST 功能型装饰器:映射基础路径。

* @desc REQUEST Functional Decorator: Map request base path. * * @desc {类装饰器} 用于后端接口的前缀路径,如 `/proxy/api` 。 * @desc {Class Decorator} Used for the prefix path of the backend interface, such as `/proxy/api`. * * @param {string} prefix 请求的基础路径 * @param {string} prefix The base path of the request * * @example * ```typescript * @RequestMapping("/proxy/api") * class UserService {...} * ``` */ declare function RequestMapping(prefix: string): (target: any) => any; /** *

REQUEST 功能型装饰器:映射请求方法。

* @desc REQUEST Functional Decorator: Map request method. * * @desc {方法装饰器} 用于映射请求方法,如 `@GetMapping` 等。 * @desc {Method Decorator} Used to map request method, such as `@GetMapping`. * * @param {AxiosResponseType} responseType axios响应类型 * @param {AxiosResponseType} responseType The type of axios response * * @example * ```typescript * @RequestMapping("/proxy/file") * class FileService { * @GetMapping("/download") * @ResponseType("blob") * async downloadFile(@RequestParam("delete") isDelete: boolean, filePath: string) {} * } * ``` */ declare function ResponseType(responseType: AxiosResponseType): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; /** *

REQUEST 功能型装饰器:映射请求头。

* @desc REQUEST Functional Decorator: Map request headers. * * @desc {方法装饰器} 用于映射请求头,如 `@RequestHeaders` 等。 * @desc {Method Decorator} Used to map request headers, such as `@RequestHeaders`. * * @param {{ [key: string]: string }} headers 请求头 * @param {{ [key: string]: string }} headers The request headers * * @example * ```typescript * @RequestMapping("/proxy/file") * class FileService { * @PostMapping("/upload") * @RequestHeaders({"Content-Type": "multipart/form-data"}) * async downloadFile(file: File) {} * } * ``` */ declare function RequestHeaders(headers: { [key: string]: string; }): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; /** *

REQUEST 辅助型装饰器:打印请求日志。

* @desc REQUEST Auxiliary Decorator: Print request log. * * @desc {方法装饰器} 用于打印请求日志。控制台输出请求时间、请求方法、请求路径、请求参数、响应数据 等信息。 * @desc {Method Decorator} Used to print request log. Console output request time, request method, request path, request parameters, and response data. * * @example * ```typescript * @RequestMapping("/proxy/user") * class UserService { * @RequestLog * @GetMapping("/{groupId}/{id}") * async fetchUser(groupId: number, id: number) {} * } * ``` */ declare function RequestLog(target: any, propertyKey: string, descriptor: PropertyDescriptor): void; /** *

REQUEST 功能型装饰器:放行请求。

* @desc REQUEST Functional Decorator: Permit request bypassing frontend Security. * * @desc {方法装饰器} 用于放行请求绕开前端Security。 * @desc {Method Decorator} Used to bypass frontend Security for requests. * * @example * ```typescript * @RequestMapping("/proxy/public/user") * class UserService { * @RequestSecurityPermit * @GetMapping("/{id}") * async getPublicUserInfo(id: number) {} * } * ``` */ declare function RequestSecurityPermit(target: any, propertyKey: string, descriptor: PropertyDescriptor): void; /** *

REQUEST 功能型装饰器:自定义请求配置。

* @desc REQUEST Functional Decorator: Customize request configuration. * * @desc {方法装饰器} 用于自定义请求配置。 * @desc {Method Decorator} Used to customize request configuration. * * @todo 参数类型待继承 IAxiosRequestConfig 用户接口 * * @param {{ [key: string]: any }} config 请求配置 * @param {{ [key: string]: any }} config The request configuration * * @example * ```typescript * @RequestMapping("/proxy/user") * class UserService { * @RequestConfig({timeout: 10000}) * @GetMapping("/{groupId}/{id}") * async fetchUser(groupId: number, id: number) {} * } * ``` */ declare function RequestConfig(config: { [key: string]: any; }): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export { RequestQueuePermit, RequestParam, RequestMapping, ResponseType, RequestHeaders, RequestLog, RequestSecurityPermit, RequestConfig, };