import { APIError } from "./errors/error.js"; import { AnyResponseSchema, PossibleResponses } from "./routes/response.js"; import { AnyRoute } from "./routes/route.js"; import { Router } from "./routers/router.js"; import { GracePlugin } from "./plugins/plugin.js"; import { Adapter } from "./runtime/adapter.js"; export type BeforeRequest = (request: Request) => Promise<{ headers?: Record; } | PossibleResponses | void>; export type AfterRequest = (request: Request, response: PossibleResponses) => Promise; export type ErrorRequest = (request: Request, error: APIError) => Promise | void>; export declare class Grace { routes: AnyRoute[]; before: BeforeRequest[]; after: AfterRequest[]; error: ErrorRequest[]; private readonly router; readonly adapter: Adapter; readonly verbose: boolean; constructor(router: Router, adapter: Adapter, verbose?: boolean); registerPlugin(plugin: GracePlugin): Grace; registerBefore(before: BeforeRequest): Grace; registerAfter(after: AfterRequest): Grace; registerError(error: ErrorRequest): Grace; registerRoute(route: AnyRoute): Grace; registerRoutes(path: string): Grace; exportOpenAPI(path: string): Grace; fetch(request: Request): Promise; listen(port: number): void; close(): void; handleInternally(request: Request): Promise>; private handleError; registerRoutesAsync(path: string): Promise; } export declare function createGrace({ router, adapter, verbose }?: { router?: Router; adapter?: Adapter; verbose?: boolean; }): Grace; //# sourceMappingURL=grace.d.ts.map