export interface LogPushProps { maxFooBar: string; } export declare function camelToSnakeObjectDeep(obj: T): T extends undefined ? undefined : T extends object ? CamelToSnake : T; type IsUpper = C extends Uppercase ? C extends Lowercase ? false : true : false; type IsLower = C extends Lowercase ? C extends Uppercase ? false : true : false; type CamelToSnakeString = S extends `${infer First}${infer Second}${infer Rest}` ? IsUpper extends true ? IsUpper extends true ? Rest extends `${infer Third}${infer _}` ? IsLower extends true ? CamelToSnakeString}_${Lowercase}`> : CamelToSnakeString<`${Second}${Rest}`, `${Acc}${Lowercase}`> : CamelToSnakeString<`${Second}${Rest}`, `${Acc}${Lowercase}`> : CamelToSnakeString<`${Second}${Rest}`, Acc extends "" ? `${Lowercase}` : `${Acc}_${Lowercase}`> : IsLower extends true ? IsUpper extends true ? CamelToSnakeString<`${Second}${Rest}`, `${Acc}${First}`> : CamelToSnakeString<`${Second}${Rest}`, `${Acc}${First}`> : CamelToSnakeString<`${Second}${Rest}`, `${Acc}${First}`> : S extends `${infer Last}` ? `${Acc}${Lowercase}` : Acc; type CamelToSnake = T extends object ? T extends Array ? Array> : T extends Date | RegExp | Function ? T : { [K in keyof T as K extends string ? CamelToSnakeString : K]: CamelToSnake; } : T; export {}; //# sourceMappingURL=camel-to-snake.d.ts.map