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<VextAdapter>）
 *
 * @param config 框架运行时配置
 * @param app    应用实例（传给 adapter 工厂函数）
 * @returns Promise<VextAdapter> 实例
 * @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<VextAdapter>;
