import type { Simplify } from 'type-fest/source/simplify.js'; import { RESTResponseToSDKResponseRenameMap, SDKRequestToRESTRequestRenameMap } from './constants.js'; /** * Recursively rename nested keys provided in `renameMap` in the given object. * Providing a list of paths to ignore will prevent renaming of keys in nested objects. * * Paths are provided in the format of 'path.to.nested.field' * @param payload The object to rename keys for * @param renameMap A map of keys to rename, where the key is the original key and the value is the new key * @param ignorePaths Paths of nested fields to ignore while traversing the object * @returns The object with renamed keys */ export declare function renameAllNestedKeys>(payload: T | undefined, renameMap: KeyMapper, ignorePaths: string[]): RenameAllNestedKeys; export declare function renameKeysFromSDKRequestToRESTRequest(payload: T | undefined, ignorePaths?: string[]): RenameAllNestedKeys; export declare function renameKeysFromRESTResponseToSDKResponse(payload: T | undefined, ignorePaths?: string[]): RenameAllNestedKeys; type NonTransformedTypes = ArrayBufferLike | Date | RegExp | string | number | boolean | null | undefined; type DecrementDepth = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; export type RenameAllNestedKeys, Depth extends number = 10> = Depth extends never ? T : T extends NonTransformedTypes ? T : Simplify; }, KeyMapper>>; type TransformedValue, Depth extends number = 10> = T extends NonTransformedTypes ? T : T extends (infer E)[] ? TransformedArray : T extends object ? RenameAllNestedKeys : T; interface TransformedArray, Depth extends number = 10> extends Array> { } type MapKeys> = KeyValueTupleToObject>; type KeyValueTupleToObject = { [K in T[0]]: Extract[1]; }; type ValueOf = T[keyof T]; export {};