import { NavigationPath } from "./Path"; export declare class Route implements PathMatcher { readonly path: string; readonly args: PathArgs; readonly queryArgs: QueryArgs; static create(path: string): Route; static create(path: string, pathArgs: TPathArgs): Route>; static create(path: string, pathArgs: TPathArgs, queryArgs: TQueryArgs): Route & QueryArgsToType>; private readonly _pathPattern; private constructor(); build(args: TArgs): NavigationPath; matches(path: NavigationPath): TArgs | undefined; } export interface PathMatcher { matches(path: NavigationPath): T | undefined; } export type PathArgs = Record; export type QueryArgs = Record; export type PathArgsToType = { [TKey in keyof T]: { string: string; }[T[TKey]]; }; type PrimitiveTypeMap = { string: string; }; export type QueryArgsToType = { [TKey in keyof T]: T[TKey] extends keyof PrimitiveTypeMap ? PrimitiveTypeMap[T[TKey]] : never; } extends infer O ? { [K in keyof O as O[K] extends never ? never : K]: O[K]; } : never; export {}; //# sourceMappingURL=Route.d.ts.map