import type { VextAdapter } from "../types/adapter.js"; import type { VextApp, VextConfig } from "../types/app.js"; /** * 解析 config.adapter 配置为 VextAdapter 实例(异步) * * 支持三种配置方式: * 1. 字符串标识 → 内置 adapter(如 'native'、'hono')— 动态 import 按需加载 * 2. 工厂函数 → 第三方 adapter(接收 app 返回 VextAdapter) * 3. 对象实例 → 第三方 adapter(必须实现 VextAdapter 接口) * * 默认值:当 config.adapter 未配置时,使用 'native'(零外部依赖 + 性能最优)。 * * v2.4 变更: * - 默认 adapter 从 'hono' 改为 'native'(native 零外部框架依赖 + JSON RPS +26.8% vs Fastify) * - 静态 import 改为动态 import(),仅加载用户选择的 adapter 对应的框架包 * - 函数签名从同步改为异步(返回 Promise) * * @param config 框架运行时配置 * @param app 应用实例(传给 adapter 工厂函数) * @returns Promise 实例 * @throws 配置值不合法或第三方 adapter 缺少必要方法时抛出错误 * * @example * // 内置 adapter(字符串标识,零 import)— 默认 native * // config: { adapter: 'native' } * const adapter = await resolveAdapter(config, app) * * @example * // 使用 Fastify adapter(需先 npm install fastify) * // config: { adapter: 'fastify' } * const adapter = await resolveAdapter(config, app) * * @example * // 第三方 adapter(需 import) * // config: { adapter: myCustomAdapter({ ... }) } * const adapter = await resolveAdapter(config, app) */ export declare function resolveAdapter(config: VextConfig, app: VextApp): Promise;