import type { VextAdapter } from "../../types/adapter.js"; import type { VextApp } from "../../types/app.js"; /** * createHonoAdapter — 创建基于 Hono 的 VextAdapter 实例 * * 将 Hono 作为底层 HTTP 路由引擎,实现 VextAdapter 接口。 * 所有路由 / 中间件 / 错误处理都通过 Hono 的路由匹配 + vext 的中间件链执行。 * * 架构说明: * - Hono 仅用于路由匹配(trie router),不使用 Hono 自带的中间件机制 * - 中间件链执行由 vext 自己的 executeChain 实现(洋葱模型) * - 请求 / 响应对象在 Hono route handler 内转换为 VextRequest / VextResponse * - 全局中间件通过 registerMiddleware() 收集,在每个路由执行时拼接到链头 * * HTTP 服务器: * - 使用 Node.js 原生 http.createServer * - 将 Node.js IncomingMessage 转为 Web Request 交给 Hono 处理 * - 将 Hono 返回的 Web Response 写回 Node.js ServerResponse * - buildHandler() 返回 Node.js (req, res) handler,用于 dev 模式热重载替换 * * Response 捕获机制(ResponseBox): * Hono 的 route handler 必须返回 Response 对象。但 vext 的 executeChain 是 void 的, * VextResponse 的发送方法(json/text/...)内部调用 c.json()/c.text() 等 Hono API, * 这些 API 返回 Response 对象。通过 ResponseBox 容器捕获这些 Response, * route handler 最后从 box.value 取出 Response 返回给 Hono。 * * @param app VextApp 实例(用于传递给 createVextRequest 的 app 引用) * @returns VextAdapter 实例 */ export declare function createHonoAdapter(app: VextApp): VextAdapter;