export type ObjectIndexType = string | number | symbol; export type AnyObject = { [key: ObjectIndexType]: any; } & Record; export type PrimitiveType = number | string | boolean | symbol | bigint; export type NestedValueType = PrimitiveType | AnyObject; export type NestedRecord = Record; export type MergeableValue = NestedValueType | NestedRecord | MergeableValue[] | null | undefined; export type MergedValue = MergeableValue | Record; export type OptionalMergeableObject = Record | undefined | null; export type MergeableInput = OptionalMergeableObject | OptionalMergeableObject[];