import type { FetchEvent } from "../server/types"; /** Function responsible for receiving an observable [operation]{@link Operation} and returning a [result]{@link OperationResult}. */ export type MiddlewareFn = (event: FetchEvent) => Promise | unknown; /** This composes an array of Exchanges into a single ExchangeIO function */ export type RequestMiddleware = (event: FetchEvent) => Response | Promise | void | Promise | Promise; type EventHandlerResponse = T | Promise; type ResponseMiddlewareResponseParam = { body?: Awaited; }; export type ResponseMiddleware = (event: FetchEvent, response: ResponseMiddlewareResponseParam) => Response | Promise | void | Promise; export declare function createMiddleware({ onRequest, onBeforeResponse }: { onRequest?: RequestMiddleware | RequestMiddleware[] | undefined; onBeforeResponse?: ResponseMiddleware | ResponseMiddleware[] | undefined; }): { onRequest?: import("vinxi/http")._RequestMiddleware | import("vinxi/http")._RequestMiddleware[] | undefined; onBeforeResponse?: import("vinxi/http")._ResponseMiddleware | import("vinxi/http")._ResponseMiddleware[] | undefined; }; export {};