import { Matched, Matcher } from './matchers'; import { MatchResult, MatchResultAny } from './matchers/MatchResult'; interface HandlerParams { match: Matched; data: D; } export declare type MatchedHandler, D = any> = Handler, D>; export declare type Handler = (params: HandlerParams) => any; export interface Route { matcher: Matcher; handler: Handler; } export declare class Router { private defaultHandler?; private routes; constructor(defaultHandler?: Handler, D> | undefined); addRoute(route: Route): void; exec(params: D): ReturnType>; } export {};