export type ParamPattern = Readonly<[Prefix, Postfix]>; export type PathVariableValue = string | number; export type PathVariable = Path extends `${string}/${Pattern[0]}${infer Key}${Pattern[1]}/${infer Tail}` ? { [key in Key | keyof PathVariable]: PathVariableValue; } : RestPathVariable; type RestPathVariable = Path extends `${string}/${Pattern[0]}${infer LastKey}${Pattern[1]}` ? Record : Record; export {};