export declare function toCamel(term: T): ToCamel; export declare function objectToCamel(obj: T): ObjectToCamel; export declare function toSnake(term: T): ToSnake; export declare function objectToSnake(obj: T): ObjectToSnake; export declare function toPascal(term: T): ToPascal; export declare function objectToPascal(obj: T): ObjectToPascal; export type ToCamel = S extends string ? S extends `${infer Head}_${infer Tail}` ? `${ToCamel>}${Capitalize>}` : S extends `${infer Head}-${infer Tail}` ? `${ToCamel>}${Capitalize>}` : Uncapitalize : never; export type ObjectToCamel = T extends undefined ? undefined : T extends null ? null : T extends Array ? ArrayType extends object ? Array> : Array : T extends Uint8Array ? Uint8Array : T extends Date ? Date : { [K in keyof T as ToCamel]: T[K] extends Array | undefined | null ? ArrayType extends object ? Array> : Array : T[K] extends object | undefined | null ? ObjectToCamel : T[K]; }; export type ToPascal = S extends string ? S extends `${infer Head}_${infer Tail}` ? `${Capitalize>}${Capitalize>}` : S extends `${infer Head}-${infer Tail}` ? `${Capitalize>}${Capitalize>}` : Capitalize : never; export type ObjectToPascal = T extends undefined ? undefined : T extends null ? null : T extends Array ? ArrayType extends object ? Array> : Array : T extends Uint8Array ? Uint8Array : T extends Date ? Date : { [K in keyof T as ToPascal]: T[K] extends Array | undefined | null ? ArrayType extends object ? Array> : Array : T[K] extends object | undefined | null ? ObjectToPascal : T[K]; }; export type ToSnake = S extends string ? S extends `${infer Head}${CapitalChars}${infer Tail}` ? Head extends '' ? Tail extends '' ? Lowercase : S extends `${infer Caps}${Tail}` ? Caps extends CapitalChars ? Tail extends CapitalLetters ? `${Lowercase}_${Lowercase}` : Tail extends `${CapitalLetters}${string}` ? `${ToSnake}_${ToSnake}` : `${ToSnake}${ToSnake}` : never : never : Tail extends '' ? S extends `${Head}${infer Caps}` ? Caps extends CapitalChars ? Head extends Lowercase ? Caps extends Numbers ? Head extends `${string}${Numbers}` ? never : `${ToSnake}_${Caps}` : `${ToSnake}_${ToSnake}` : never : never : never : S extends `${Head}${infer Caps}${Tail}` ? Caps extends CapitalChars ? Head extends Lowercase ? Tail extends CapitalLetters ? `${ToSnake}_${ToSnake}_${Lowercase}` : Tail extends `${CapitalLetters}${string}` ? Head extends Numbers ? never : Head extends `${string}${Numbers}` ? never : `${Head}_${ToSnake}_${ToSnake}` : `${ToSnake}_${Lowercase}${ToSnake}` : never : never : never : S : never; export type ObjectToSnake = T extends undefined ? undefined : T extends null ? null : T extends Array ? ArrayType extends object ? Array> : Array : T extends Uint8Array ? Uint8Array : T extends Date ? Date : { [K in keyof T as ToSnake]: T[K] extends Array | undefined | null ? ArrayType extends object ? Array> : Array : T[K] extends object | undefined | null ? ObjectToSnake : T[K]; }; type CapitalLetters = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'; type Numbers = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'; type CapitalChars = CapitalLetters | Numbers; export {};