import type { RouteHandler } from "@getstrata/core/http/middleware"; import type { RouteRequest } from "@getstrata/core/http/route"; import type { AppDependencies } from "../contracts.ts"; import type { HttpKernel } from "../httpKernel.ts"; /** Read Bun native `:param` values from a route handler request. */ export declare function routeParams(request: Request): Record; /** * Attach decoded route params to Bun's native Request for RouteRequest handlers. * Mutates the request in place so instanceof Request and Bun internals stay valid. */ export declare function toRouteRequest>(request: Request): RouteRequest; /** * Secured route-model binding for string keys (slugs, UUIDs). * Public HTML show pages should look up the model in the controller instead. * If this wrapper is still used on HTML, a missing model becomes a styled 404 * and GET ETags are skipped for HTML / composite objects unless `etag: true`. */ export declare function wrapSecuredRouteModelByKey, TModel, TParam extends keyof TParams & string>(param: TParam, resolver: (key: string, request: RouteRequest) => Promise, authorization: { resource: string; action: "view" | "create" | "update" | "delete"; etag?: boolean; }, handler: (request: RouteRequest, model: TModel) => Response | Promise): RouteHandler; /** Web group (CSRF + flash + HTML errors) plus login throttle. Do not wrap with wrapWeb again. */ export declare function wrapWebLogin(kernel: HttpKernel, handler: RouteHandler, onThrottled: (request: Request) => Response | Promise): RouteHandler; /** Web group (CSRF + flash + HTML errors) plus register throttle. Do not wrap with wrapWeb again. */ export declare function wrapWebRegister(kernel: HttpKernel, handler: RouteHandler, onThrottled: (request: Request) => Response | Promise): RouteHandler; /** Convenience alias for `createHttpKernel`. */ export declare function createRouteKernel(dependencies: AppDependencies): HttpKernel;