import type { ServerRenderedTemplate } from '@lit-labs/ssr'; import type { TemplateResult } from 'lit'; export type MethodHtml = 'GET' | 'POST'; export type MethodNonHtml = 'QUERY' | 'PUT' | 'PATCH' | 'DELETE'; export type Method = MethodHtml & MethodNonHtml; export declare const RequestMethod: { readonly GET: "GET"; readonly QUERY: "QUERY"; readonly HEAD: "HEAD"; readonly POST: "POST"; readonly PUT: "PUT"; readonly DELETE: "DELETE"; readonly OPTIONS: "OPTIONS"; readonly PATCH: "PATCH"; }; export type ModuleOptions = { staticPaths?: StaticPathsGeneric; handler?: HandlerGeneric; prerender?: boolean | undefined; document?: DocumentTemplate; template?: (context: RouteContextGeneric) => RouteTemplateResult; }; export declare class RouteModule { #private; get staticPaths(): StaticPathsGeneric | undefined; get locals(): unknown; get handler(): HandlerGeneric | undefined; get document(): DocumentTemplate | undefined; get prerender(): boolean | undefined; get template(): ((context: RouteContextGeneric) => RouteTemplateResult) | undefined; constructor(options: ModuleOptions); } export type Parameters = Record; export type Handler = (context: { url: URL; /** * Parameters from dynamic route. * * E.g. `src/routes/foo/[bar]/[baz].ts` -\> `{ bar: string; baz: string; }` */ params: Parameters; request: Request; locals: Gracile.Locals; /** * Let you mutate the downstream **page** response. * * It doesn't take effect if you're returning the * response yourself before (within your request handler). * */ responseInit: ResponseInit; }) => MaybePromise | MaybePromise; export type HandlerGeneric = Handler | Partial> & Record>>; export type StaticPathsGeneric = () => MaybePromise; export type HandlerData = Response | undefined; export type HandlerDataHtml = HandlerData | object; export type StaticPathOptionsGeneric = { params: Parameters; props: unknown; }; export type MaybePromise = Promise | T; export type StaticRequest = Pick; export type RouteContextGeneric = { url: URL; params: Parameters; props: unknown; }; export type DocumentResult = MaybePromise; export type RouteTemplateResult = MaybePromise; export type DocumentTemplate = (context: RouteContext) => DocumentResult; export type BodyTemplate = (context: RouteContext) => RouteTemplateResult; export interface Route { filePath: string; pattern: URLPattern; hasParams: boolean; pageAssets: string[]; } export type RoutesManifest = Map; export type RoutesImports = Map Record>; export type RoutesAssets = Map; //# sourceMappingURL=route.d.ts.map