export type RecursiveKeyOf<TObj extends object> = {
    [TKey in keyof TObj & (string | number)]: RecursiveKeyOfHandleValue<TObj[TKey], `${TKey}`>;
}[keyof TObj & (string | number)];
type RecursiveKeyOfInner<TObj extends object> = {
    [TKey in keyof TObj & (string | number)]: RecursiveKeyOfHandleValue<TObj[TKey], `.${TKey}`>;
}[keyof TObj & (string | number)];
type RecursiveKeyOfHandleValue<TValue, Text extends string> = TValue extends any[] ? Text : TValue extends object ? `${Text}${RecursiveKeyOfInner<TValue>}` : Text;
/**
 * @returns A list of only the primitive keys of an object.
 * Includes those nested within other objects, e.g. `'name.firstName'`.
 * @param includeUndefined - whether to include properties which are defined but have a value of `undefined`.
 */
export declare function getNestedPropertyKeys<T extends object>(obj: T, includeUndefined?: boolean, includeFalsy?: boolean): Array<RecursiveKeyOf<T>>;
export {};
