import Context, { RequestLike, ResponseLike } from './context.js'; type Middleware = (ctx: Context, next: () => Promise) => Promise; export interface Plugin { name: string; setup: (app: OpenSpeedApp) => void; } export interface OpenSpeedApp { use(fn: Middleware): OpenSpeedApp; decorate(key: string, value: unknown): OpenSpeedApp; plugin(nameOrPlugin: string | Plugin, pluginFn?: (app: OpenSpeedApp) => void): OpenSpeedApp; routes(): Array<{ method: string; path: string; middlewares: string[]; }>; printRoutes(): OpenSpeedApp; loadRoutes(routesDir: string, options?: { prefix?: string; }): Promise; get(path: string, ...args: Middleware[]): OpenSpeedApp; post(path: string, ...args: Middleware[]): OpenSpeedApp; put(path: string, ...args: Middleware[]): OpenSpeedApp; delete(path: string, ...args: Middleware[]): OpenSpeedApp; patch(path: string, ...args: Middleware[]): OpenSpeedApp; options(path: string, ...args: Middleware[]): OpenSpeedApp; handle(req: RequestLike): Promise; listen(port?: number): Promise; [key: string]: unknown; } export declare function createApp(): OpenSpeedApp; export declare const Openspeed: typeof createApp; export * from './plugins/index.js'; export default Openspeed; //# sourceMappingURL=index.d.ts.map