export type RemoveFirstFromTuple = T['length'] extends 0 ? undefined : ((...b: T) => void) extends (a: infer Q, ...b: infer I) => void ? I : []; export type SplitStringBy = string extends S ? string[] : S extends '' ? [] : S extends `${infer T}${D}${infer U}` ? [T, ...SplitStringBy] : [S]; type PickParams = S['length'] extends 0 ? [] : S[0] extends `${P}${string}` ? [ S[0], ...PickParams, P> ] : PickParams, P>; export type Substring = S['length'] extends 0 ? [] : [ SplitStringBy[1], ...Substring> ]; export type ExtractedRequestParams = { parsedPathParams: PickParams, ':'>; }; export type CamelCase = S extends `${infer P1}_${infer P2}${infer P3}` ? `${Lowercase}${Uppercase}${CamelCase}` : S extends `${infer P1}-${infer P2}${infer P3}` ? `${Lowercase}${Uppercase}${CamelCase}` : S; export type KeysToCamelCase = { [K in keyof T as CamelCase]: T[K] extends Record ? KeysToCamelCase : T[K]; }; type RemoveLeadingColon = S['length'] extends 0 ? never : SplitStringBy[1]; type RemoveTrailingQuestion = S['length'] extends 0 ? never : SplitStringBy[0]; export type CleanUpPathParam = S extends string ? RemoveLeadingColon> extends string ? RemoveLeadingColon> : '' : never; export {}; //# sourceMappingURL=TypeUtils.d.ts.map