type DotPrefix = '' extends T ? U : `${T}.${U}`; type NestedKeys = { [K in keyof T & string]: T[K] extends Record ? DotPrefix | NestedKeys> : DotPrefix; }[keyof T & string]; export type FlattenObjectType = Record, any>; /** * Flattens an object using dot notation for nested fields. * Arrays are treated as leaf nodes and are not traversed. * Includes both nested objects and their individual properties as separate keys. * * Example: * flattenObject({ a: { b: 1, c: { d: 2 } } }) * -> { * 'a': { b: 1, c: { d: 2 } }, * 'a.b': 1, * 'a.c': { d: 2 }, * 'a.c.d': 2 * } */ export declare function flattenObject(input: T): FlattenObjectType; export {};