/** Makes every property in the object optional. */
export type DeepPartial<T> = {
    [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
};
export type FlattenObjectKeys<T extends Record<string, unknown>, Key = keyof T> = Key extends string ? T[Key] extends Record<string, unknown> | undefined ? `${Key}.${FlattenObjectKeys<Exclude<T[Key], undefined>>}` : `${Key}` : never;
