import { Route, Handler, Method, Context, Path, Middleware } from "./router.types";
import { Router } from "./router";
import { SecurityHeaders } from "@lottojs/secure-headers/lib/core/types";
import { CorsObject } from "@lottojs/cors/lib/core/types";
export declare class Routing {
    protected routes: Route[];
    protected prefix: string;
    protected cors: CorsObject | undefined;
    protected secureHeaders: SecurityHeaders | undefined;
    private useCalls;
    protected match(path: Path, byRegex: boolean, method?: Method): Route | undefined;
    protected register(method: Method, path: Path, handler: Handler): boolean;
    protected middleware(path: Path, middleware: Middleware, method: Method): void;
    use(router: Router): this;
    use(handler: Handler): this;
    use(path: Path, router: Router): this;
    use(path: Path, handler: Handler): this;
    protected serve(method: Method, ...input: any[]): this;
    protected handle(ctx: Context): Promise<void>;
}
