import type { NativeAdapterOptions } from "./adapter.js";
import type { VextAdapter } from "../../types/adapter.js";
import type { VextApp } from "../../types/app.js";
/**
 * Native Adapter 导出入口
 *
 * 提供 nativeAdapter() 工厂函数，用户通过此函数创建 Native 适配器实例。
 * 是 VextAdapter 接口的第五个实现（Hono → Fastify → Express → Koa → Native），
 * 也是唯一不依赖第三方 HTTP 框架的实现。
 *
 * 基于 Node.js 原生 http.createServer + route-core（轻量路由核心），
 * 跳过所有第三方框架的初始化、对象包装、中间件管道等开销，
 * 是 vext 的最高性能适配器选项。
 *
 * 使用方式（在用户项目的 src/config/default.ts 中）：
 *
 *   ```typescript
 *   // 方式 1: 零配置（推荐）
 *   import { nativeAdapter } from 'vextjs/adapters/native'
 *   export default {
 *     adapter: nativeAdapter(),
 *   }
 *
 *   // 方式 2: 自定义选项
 *   import { nativeAdapter } from 'vextjs/adapters/native'
 *   export default {
 *     adapter: nativeAdapter({ maxParamLength: 1000 }),
 *   }
 *
 *   // 方式 3: 字符串标识（零 import，最简）
 *   export default {
 *     adapter: 'native',
 *   }
 *   ```
 *
 * 内置注册方式（adapter-resolver.ts 中）：
 *   adapter-resolver 将 'native' 字符串映射到此工厂函数，
 *   用户可在配置中使用 adapter: 'native'（零 import）。
 *
 * @module adapters/native
 * @see adapters/fastify/index.ts（Fastify Adapter 导出入口）
 * @see adapters/express/index.ts（Express Adapter 导出入口）
 * @see adapters/koa/index.ts（Koa Adapter 导出入口）
 * @see adapters/hono/index.ts（Hono Adapter 导出入口）
 */
export type { NativeAdapterOptions } from "./adapter.js";
/**
 * nativeAdapter — 创建 Native 适配器工厂函数
 *
 * 返回一个「延迟工厂」函数，该函数在 adapter-resolver 调用时
 * 接收 VextApp 实例并创建完整的 VextAdapter。
 *
 * 这种两阶段初始化设计与 adapter-resolver 的工作方式对齐：
 *   1. 用户调用 nativeAdapter(options) → 返回工厂函数（捕获 options）
 *   2. adapter-resolver 调用 factory(app) → 返回 VextAdapter 实例
 *
 * @param options Native 适配器选项（可选）
 * @returns 适配器工厂函数 (app: VextApp) => VextAdapter
 *
 * @example
 * // 内置方式（config.adapter = 'native'，零 import）
 * export default { adapter: 'native' }
 *
 * @example
 * // 工厂方式（自定义选项）
 * import { nativeAdapter } from 'vextjs/adapters/native'
 * export default { adapter: nativeAdapter({ maxParamLength: 1000 }) }
 *
 * @example
 * // 零配置工厂（等价于 'native' 字符串，但可后续添加选项）
 * import { nativeAdapter } from 'vextjs/adapters/native'
 * export default { adapter: nativeAdapter() }
 */
export declare function nativeAdapter(options?: NativeAdapterOptions): (app: VextApp) => VextAdapter;
/**
 * createNativeAdapterDirect — 直接创建 Native Adapter（内部使用）
 *
 * 供 adapter-resolver 的 BUILT_IN_ADAPTERS 映射表使用。
 * 不暴露给用户（用户应使用 nativeAdapter() 工厂函数）。
 *
 * @internal
 */
export { createNativeAdapter } from "./adapter.js";
