import { HttpRoute, RouteHandler, HttpMethods, HttpContext, Application, RouteObjectAttributes } from '@supercharge/contracts'; export declare class Route implements HttpRoute { /** * Stores the route attributes */ private readonly attributes; /** * Stores the app instance. */ private readonly app; /** * Create a new route instance. */ constructor(methods: HttpMethods[], path: string, handler: RouteHandler, app: Application); /** * Returns the route path. */ path(): string; /** * Returns the HTTP methods. */ methods(): HttpMethods[]; /** * Returns the route handler. */ handler(): RouteHandler; /** * Assign the given `prefix` to this route. */ prefix(prefix: string): this; /** * Assign the given `middleware` stack to this route. */ middleware(middleware?: string | string[]): this; /** * Returns the middleware stack for this route. */ getMiddleware(): string[]; /** * Run the route handler. */ run(ctx: HttpContext): Promise; /** * Determine whether the assigned handler is a controller constructor. */ isControllerClass(): boolean; /** * Resolve the route controller instance and run * the `handle` method for the given HTTP `ctx`. */ runControllerClass(ctx: HttpContext): Promise; /** * Determine whether the assigned handler for this route is a controller action. */ isInlineHandler(): boolean; /** * Run the route handler */ runCallable(ctx: HttpContext): Promise; /** * Returns the route object’s attributes. */ toJSON(): RouteObjectAttributes; }