/// <reference types="node" />
import { IncomingMessage, ServerResponse } from 'http';
import { UrlWithParsedQuery } from 'url';
export declare const route: (path: string) => (pathname: string | undefined, params?: any) => any;
export declare type Params = {
    [param: string]: any;
};
export declare type RouteMatch = (pathname: string | undefined) => false | Params;
declare type RouteResult = {
    finished: boolean;
    pathname?: string;
};
export declare type Route = {
    match: RouteMatch;
    type: string;
    statusCode?: number;
    name: string;
    fn: (req: IncomingMessage, res: ServerResponse, params: Params, parsedUrl: UrlWithParsedQuery) => Promise<RouteResult> | RouteResult;
};
export default class Router {
    routes: Route[];
    constructor(routes?: Route[]);
    add(route: Route): void;
    execute(req: IncomingMessage, res: ServerResponse, parsedUrl: UrlWithParsedQuery): Promise<boolean>;
}
export {};
