import { IncomingMessage, ServerResponse } from 'node:http'; /** * 将请求 URI 转换为文件名 * @param uri 请求 URI * @returns 文件名 * @example * convertUriToFileName('GET /api/create') => 'GET➯api>create' * convertUriToFileName('POST /api/create') => 'POST➯api>create' */ export declare function convertUriToFileName(uri: string): string; export interface HarvesterOptions { /** * 生成的 Mock 文件名 * @param params 参数 * @param params.method 请求方法 * @param params.pathname 请求 URL 的 pathname * @param params.convert 转换文件名的函数 * @returns 文件名,文件名会自动添加到 mock 目录下,如果返回false, 则不生成 Mock 文件 */ generate?: (params: HarvesterGenerateParams) => string | boolean; } export interface HarvesterGenerateParams { /** 请求方法 */ method: string; /** 请求 URL 的 pathname */ pathname: string; /** 转换文件名的函数 */ convert: typeof convertUriToFileName; } export type ProxyItem = { target: string; changeOrigin?: boolean; secure?: boolean; ws?: boolean; pathRewrite?: Record; headers?: Record; /** 抓取上游响应数据用于初始化 Mock 数据 */ harvester?: HarvesterOptions | boolean; }; export type ProxyConfig = Record; type IServerResponse = ServerResponse & { req: IncomingMessage; }; export declare function setupProxy(req: IncomingMessage, res: IServerResponse, proxyConfig: ProxyConfig): Promise; export { };