/// var Request$1 = Request; var Response$1 = Response; var ResponseInit$1 = ResponseInit; var Headers$1 = Headers; declare type StaticFileOptions = { /** Max age (in seconds) for the Cache-Control header */ maxAge?: number | undefined; /** Include ETag and Last-Modified headers automatically (default: true) */ cachingHeaders?: boolean | undefined; }; declare type StaticFileInit = ResponseInit$1 & StaticFileOptions; declare class StaticFile { readonly filePath: string; readonly responseInit: ResponseInit$1; readonly options: StaticFileOptions; constructor(filePath: string, init?: StaticFileInit); } declare type BodyStream = Request$1 extends { body: infer T; } ? Exclude : never; declare type BodyAccessorArgs = M extends MethodNoBody ? [ERROR: 'NO_BODY_ALLOWED_FOR_METHOD'] : []; declare class CustomRequest { request: Request$1; readonly method: M; readonly url: string; readonly headers: Headers$1; readonly path: string; readonly search: string; readonly query: URLSearchParams; readonly params: { [K in Params]: string; }; _fallbackBody: BodyStream | undefined; constructor(request: Request$1); get body(): M extends MethodNoBody ? null : BodyStream; get bodyUsed(): boolean; arrayBuffer(..._: BodyAccessorArgs): Promise; text(..._: BodyAccessorArgs): Promise; json(..._: BodyAccessorArgs): Promise; } declare type MaybePromise = T | Promise; declare type MaybeIntersect = U extends undefined ? T : T & U; declare type JsonPayload = Record | Array; declare type ExtractParams = string extends T ? never : T extends `${infer _Start}:${infer Param}/${infer Rest}` ? Param | ExtractParams : T extends `${infer _Start}:${infer Param}` ? Param : never; declare type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS'; declare type MethodNoBody = Exclude; declare type Handler = ( request: MaybeIntersect>, RequestContext>, ) => MaybePromise< Response$1 | StaticFile | JsonPayload | null | undefined | void >; declare type Route = [ string, string, Handler, ]; declare type JSONValue = | null | boolean | number | string | Array | { [key: string]: JSONValue; }; declare type HttpErrorInit = { status: number; message?: string; }; declare class HttpError extends Error { readonly status: number; constructor(status: number, message?: string, options?: ErrorOptions); constructor(init: HttpErrorInit, options?: ErrorOptions); get name(): string; get [Symbol.toStringTag](): string; } declare class CustomResponse extends Response$1 { static file(filePath: string, init?: StaticFileInit): StaticFile; } declare const createApplication: < CtxGetter extends (request: Request) => object | undefined = ( request: Request, ) => undefined, >(applicationOptions?: { bodyParserMaxBufferSize?: number; errorHandler?: (error: Error) => MaybePromise; root?: string; allowStaticFrom?: string[]; serveFile?: (params: { filePath: string; fullFilePath: string; status: number; statusText: string; headers: Headers; options: StaticFileOptions; }) => Promise; getContext?: CtxGetter; }) => { defineRoutes: ( fn: (app: { get:

( path: P, handler: Handler<'GET', P, ReturnType>, ) => Route>; post: ( path: P_1, handler: Handler<'POST', P_1, ReturnType>, ) => Route>; put: ( path: P_2, handler: Handler<'PUT', P_2, ReturnType>, ) => Route>; delete: ( path: P_3, handler: Handler<'DELETE', P_3, ReturnType>, ) => Route>; route: < M extends | (string & {}) | ('GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'OPTIONS' | '*'), P_4 extends string, >( method: M, path: P_4, handler: Handler, P_4, ReturnType>, ) => Route>; }) => Route>[], ) => Route>[]; createRequestHandler: ( ...routeLists: Route>[][] ) => (request: Request) => Promise; attachRoutes: ( ...routeLists: Route>[][] ) => (request: Request) => Promise; }; export { HttpError, Request$1 as Request, CustomResponse as Response, createApplication, };