import type { BunRequest, RouterTypes, Server } from "bun";
export type Middleware<T extends string> = (req: BunRequest<T>, server: Server, next: () => Response | Promise<Response>) => Response | Promise<Response>;
export declare function middleware<T extends string>(fn: Middleware<T>): Middleware<T>;
export declare function composeMiddlewares<T extends string>(middlewares: readonly Middleware<T>[], finalHandler: RouterTypes.RouteHandler<T>): RouterTypes.RouteHandler<T>;
