import { t as GetAuth } from "../../types-BCl8gfGy.js";
import { HttpRouter } from "convex/server";
import { MiddlewareHandler } from "hono";
import { BaseURLConfig, BetterAuthOptions } from "better-auth";

//#region src/auth/middleware.d.ts
interface AuthMiddlewareOptions {
  /** Base path for auth routes (default: '/api/auth') */
  basePath?: string;
  /** Log request/response headers for debugging */
  verbose?: boolean;
}
/**
 * Create auth middleware that handles auth routes and OpenID well-known redirect.
 *
 * @example
 * ```ts
 * import { Hono } from 'hono';
 * import { cors } from 'hono/cors';
 * import { authMiddleware } from 'kitcn/auth/http';
 * import { createHttpRouter } from 'kitcn/server';
 *
 * const app = new Hono();
 * app.use('/api/*', cors({ origin: process.env.SITE_URL, credentials: true }));
 * app.use(authMiddleware(getAuth));
 *
 * export default createHttpRouter(app, httpRouter);
 * ```
 */
declare function authMiddleware<Ctx = unknown>(getAuth: GetAuth<Ctx, {
  handler: (request: Request) => Promise<Response>;
}>, opts?: AuthMiddlewareOptions): MiddlewareHandler;
//#endregion
//#region src/auth/registerRoutes.d.ts
type TrustedOriginsOption = BetterAuthOptions['trustedOrigins'];
type RouteCorsOptions = {
  allowedHeaders?: string[];
  allowedOrigins?: string[];
  exposedHeaders?: string[];
} | boolean;
type RegisterRoutesOptions = {
  basePath?: string;
  cors?: RouteCorsOptions;
  verbose?: boolean;
};
type AuthRouteContract = {
  $context: Promise<{
    options: {
      trustedOrigins?: TrustedOriginsOption;
    };
  }>;
  handler: (request: Request) => Promise<Response>;
  options: {
    basePath?: string;
    baseURL?: BaseURLConfig;
    trustedOrigins?: TrustedOriginsOption;
  };
};
declare const registerRoutes: <Ctx>(http: HttpRouter, getAuth: GetAuth<Ctx, AuthRouteContract>, opts?: RegisterRoutesOptions) => void;
//#endregion
//#region src/auth-http/index.d.ts
/**
 * Install Convex-safe polyfills required by Better Auth's HTTP handling.
 * This runs automatically when importing `kitcn/auth/http`.
 */
declare function installAuthHttpPolyfills(): void;
//#endregion
export { authMiddleware, installAuthHttpPolyfills, registerRoutes };