export function parse(route: string, loose?: boolean): { keys: string[]; pattern: RegExp; } export function parse(route: RegExp): { keys: false; pattern: RegExp; } export type RouteParams = T extends `${infer Prev}/*/${infer Rest}` ? RouteParams & { wild: string } & RouteParams : T extends `${string}:${infer P}?/${infer Rest}` ? { [K in P]?: string } & RouteParams : T extends `${string}:${infer P}/${infer Rest}` ? { [K in P]: string } & RouteParams : T extends `${string}:${infer P}?` ? { [K in P]?: string } : T extends `${string}:${infer P}` ? { [K in P]: string } : T extends `${string}*` ? { wild: string } : {}; export function inject(route: T, values: RouteParams): string;