import { b as Awaitable, A as AnyCtx, a as AnyMeta, M as MergeObjectsShallow, U as UnknownValues } from './util-CHs1TI3T.js'; type ResponseHandler = (response: Response) => Awaitable; type MiddlewareReturn = TCtxUpdate | Response | ResponseHandler | void; type AnyMiddleware = Middleware; type EndMiddlewareHandler = (request: Request, ctx: TCtx, meta: Readonly) => Awaitable; type MiddlewareHandler = (request: Request, ctx: TCtx & AnyCtx, meta: Readonly>) => Awaitable>; type RequestHandler = ((request: Request) => Promise) & { meta: TMeta; }; type Middleware = void extends TMetaUpdate ? MiddlewareHandler : MiddlewareHandler & { meta: TMetaUpdate; }; type EndMiddleware = void extends TMetaUpdate ? EndMiddlewareHandler : EndMiddlewareHandler & { meta: TMetaUpdate; }; type MergeCtx = void extends TUpdates ? TCtx : undefined extends TUpdates ? MergeObjectsShallow> : MergeObjectsShallow; type MergeMeta = void extends TUpdates ? TMeta : undefined extends TUpdates ? MergeObjectsShallow> : MergeObjectsShallow; export type { AnyMiddleware as A, EndMiddlewareHandler as E, Middleware as M, ResponseHandler as R, MiddlewareReturn as a, MergeCtx as b, RequestHandler as c, EndMiddleware as d, MergeMeta as e };