import { Handler, Path } from './router.types';
import { Routing } from './routing';
interface AbstractRouter {
    all(path: Path, middlewares: Handler[], handler: Handler): this;
    all(path: Path, handler: Handler): this;
    all(path: Path, ...input: any[]): this;
    get(path: Path, middlewares: Handler[], handler: Handler): this;
    get(path: Path, handler: Handler): this;
    get(path: Path, ...input: any[]): this;
    post(path: Path, middlewares: Handler[], handler: Handler): this;
    post(path: Path, handler: Handler): this;
    post(path: Path, ...input: any[]): this;
    put(path: Path, middlewares: Handler[], handler: Handler): this;
    put(path: Path, handler: Handler): this;
    put(path: Path, ...input: any[]): this;
    patch(path: Path, middlewares: Handler[], handler: Handler): this;
    patch(path: Path, handler: Handler): this;
    patch(path: Path, ...input: any[]): this;
    delete(path: Path, middlewares: Handler[], handler: Handler): this;
    delete(path: Path, handler: Handler): this;
    delete(path: Path, ...input: any[]): this;
    options(path: Path, middlewares: Handler[], handler: Handler): this;
    options(path: Path, handler: Handler): this;
    options(path: Path, ...input: any[]): this;
    head(path: Path, middlewares: Handler[], handler: Handler): this;
    head(path: Path, handler: Handler): this;
    head(path: Path, ...input: any[]): this;
}
export interface Router extends AbstractRouter {
}
export declare class Router extends Routing implements AbstractRouter {
    readonly '@instanceof': symbol;
    constructor();
}
export {};
