export type RouterParamKeys = T extends `${infer A}${S}${infer B}` ? (A extends `${M}${infer R}` ? (R | RouterParamKeys) : RouterParamKeys) : (T extends `${M}${infer R}` ? R : never); export type RouterParam = RouterParamKeys extends never ? never : { [k in RouterParamKeys]: string; };