import type { VextMiddleware } from "../../types/middleware.js";
import type { VextCorsConfig } from "../../types/app.js";
/**
 * createCorsMiddleware — CORS 跨域中间件工厂
 *
 * 内置中间件 #2，职责：
 *   1. 处理 OPTIONS preflight 请求 — 直接返回 204（不进入后续中间件链）
 *   2. 为所有响应注入 CORS 相关头（Access-Control-Allow-Origin 等）
 *
 * 配置项（config.cors）：
 *   - enabled:     是否启用 CORS（默认 true）；false 时跳过所有 CORS 处理
 *   - origins:     允许的 Origin 列表（默认 ['*']）；'*' 允许所有来源
 *   - methods:     允许的 HTTP 方法列表（默认常用 7 种方法）
 *   - headers:     允许的请求头列表（默认 ['Content-Type', 'Authorization']）
 *   - credentials: 是否允许携带 Cookie（默认 false）
 *   - maxAge:      preflight 缓存时间（秒，默认 86400 = 24 小时）
 *
 * Origin 匹配逻辑：
 *   - origins 包含 '*'：直接设置 Access-Control-Allow-Origin: *
 *     （credentials = true 时降级为回显请求 Origin，因为 '*' 与 credentials 不兼容）
 *   - origins 为具体域名列表：检查请求 Origin 是否在列表中，
 *     匹配则回显该 Origin，不匹配则不设置 CORS 头（浏览器会拒绝）
 *
 * 禁用内置 CORS 后的自定义方式：
 *   若需要更复杂的 CORS 逻辑（如动态 Origin 校验、按租户区分），
 *   可通过插件使用 app.use() 注册自定义 CORS 中间件并将 cors.enabled 设为 false。
 *
 * @param config CORS 配置（从 VextConfig.cors 提取）
 * @returns VextMiddleware
 */
export declare function createCorsMiddleware(config: VextCorsConfig): VextMiddleware;
