import { EventEmitter } from "node:events"; import type { RequestListener } from "node:http"; import type { AsyncLocalStorage } from "node:async_hooks"; import { Context } from "./context.mts"; import { type RouteBuilder } from "./router.mts"; import type { ApplicationOptions } from "./types.mts"; export type ErrorHandler = (ctx: Context, error: Error) => Promise | void; export type NotFoundHandler = (ctx: Context) => Promise | void; export declare class Application extends EventEmitter { private router; private errorHandlerFn; private notFoundHandlerFn; private asyncLocalStorage; private extensions; private contextClass; private logger; private bodyLimit; private readonly securityHeaders; private trustProxy; private strictJsonContentType; private readonly oversizedBodyStrategy; private readonly fallbackContentSecurityPolicy; private readonly strictHttpMethods; constructor(options?: ApplicationOptions); route(path: string): RouteBuilder; errorHandler(fn: ErrorHandler): void; notFoundHandler(fn: NotFoundHandler): void; setAsyncLocalStorage(als: AsyncLocalStorage): void; extend(methods: Record): void; callback(): RequestListener; private handleRequest; private runRequest; } export declare const createApp: (options?: ApplicationOptions) => Application;