///
import { IRouterOptions, HTTP_METHOD, RouteHandlerCallback, RouteMiddlewareCallback } from './contracts.js';
import { HttpRoute } from './route.js';
export declare class HttpRouter {
readonly routes: Array;
readonly opts: IRouterOptions;
readonly _prefix: string;
readonly middlewares: RouteMiddlewareCallback[];
readonly staticRoutes: NodeJS.Dict;
constructor(options?: Partial);
get(path: string, handler: T): HttpRoute;
post(path: string, handler: T): HttpRoute;
put(path: string, handler: T): HttpRoute;
patch(path: string, handler: T): HttpRoute;
delete(path: string, handler: T): HttpRoute;
head(path: string, handler: T): HttpRoute;
options(path: string, handler: T): HttpRoute;
any(path: string, handler: T): HttpRoute;
all(methods: HTTP_METHOD[], path: string, handler: T): HttpRoute[];
add(method: HTTP_METHOD, path: string, handler: T): HttpRoute;
prefix(prefix: string): LinkedRouter;
middleware(...middlewares: RouteMiddlewareCallback[]): LinkedRouter;
addRoute(route: HttpRoute): HttpRoute;
static(route: HttpRoute): void;
makePath(path: string): string;
mergeRouters(routers: Array, options?: {
prefix?: string;
merge?: boolean;
}): void;
use(...args: CallableFunction[]): void;
use(...args: HttpRouter[]): void;
use(prefix: string, ...args: HttpRouter[]): void;
use(prefix: string, merge: boolean, ...args: HttpRouter[]): void;
find(method: HTTP_METHOD, path: string, params?: NodeJS.Dict): false | HttpRoute;
}
declare class LinkedRouter {
readonly router: HttpRouter;
readonly opts: IRouterOptions;
readonly middlewares: RouteMiddlewareCallback[];
readonly _prefix: string;
constructor(router: HttpRouter, options?: Partial);
middleware(...middlewares: RouteMiddlewareCallback[]): void;
get(path: string, handler: T): HttpRoute;
post(path: string, handler: T): HttpRoute;
put(path: string, handler: T): HttpRoute;
patch(path: string, handler: T): HttpRoute;
delete(path: string, handler: T): HttpRoute;
head(path: string, handler: T): HttpRoute;
options(path: string, handler: T): HttpRoute;
all(methods: HTTP_METHOD[], path: string, handler: T): HttpRoute[];
any(path: string, handler: T): HttpRoute;
add(method: HTTP_METHOD, path: string, handler: T): HttpRoute;
}
export {};