///
import { HTTP_METHOD, RouteMiddlewareCallback } from './contracts.js';
export declare class HttpRoute {
readonly methods: HTTP_METHOD[] | '*';
protected handler: T;
private metadata;
protected _static: boolean;
protected regex: RegExp | null;
protected paramKeys: Array;
protected _name: string;
protected path: string;
protected middlewares: RouteMiddlewareCallback[];
protected composedHandler: any;
constructor(methods: HTTP_METHOD[] | '*', path: string, handler: T, metadata?: NodeJS.Dict);
getPath(): string;
setPath(path: string): void;
getHandler(): T;
/**
* change route handler
* @param handler
*/
setHandler(handler: T): void;
get name(): string;
as(name: string): void;
protected setPathParamKeys(): void;
protected setRegex(): void;
/**
* match route method
* @param method
* @returns {boolean}
*/
matchMethod(method: HTTP_METHOD): boolean;
/**
* match route path
* @param path
* @param params
* @returns {boolean}
*/
match(path: string, params?: NodeJS.Dict): boolean;
clone(): HttpRoute;
/**
* get metadata
* @param meta
* @returns {NodeJS.Dict}
*/
meta(meta?: NodeJS.Dict): NodeJS.Dict;
/**
* check if route is static route
* @returns {boolean}
*/
isStatic(): boolean;
middleware(...middlewares: RouteMiddlewareCallback[]): this;
getComposedHandler(): T;
}