import { type UniversalMiddleware, type RuntimeAdapterTarget } from "@universal-middleware/core";
import { createMiddleware } from "universal-middleware/adapters/hattip";
import middleware from "./middleware.d.ts";
type ExtractT<T> = T extends (...args: infer X) => any ? X : never;
type ExtractInContext<T> = T extends (...args: any[]) => UniversalMiddleware<infer X> ? unknown extends X ? Universal.Context : X : {};
export type Target = "hattip";
export type RuntimeAdapter = RuntimeAdapterTarget<Target>;
export type InContext = ExtractInContext<typeof middleware>;
export type OutContext = unknown;
export type Args = ExtractT<typeof middleware>;
export type Middleware = ReturnType<ReturnType<typeof createMiddleware<Args, InContext, OutContext>>>;
declare const _default: (...args: Args) => Middleware;
export default _default;
