type GenericPropertyDescriptor = Readonly<{ configurable?: boolean; enumerable?: boolean; }>; type DataPropertyDescriptor = Readonly<{ value: Value; writable?: boolean; } | { value?: Value; writable: boolean; }> & GenericPropertyDescriptor; type AccessorPropertyDescriptor = Readonly<{ get: () => Value; set?: (value: Value) => void; } | { get?: () => Value; set: (value: Value) => void; }> & GenericPropertyDescriptor; /** * Any object. */ export type AnyObject = Record; /** * Field replacer for `replaceFields` function. */ export type FieldReplacer = (this: void, path: readonly PropertyKey[], value: unknown, parent: object) => unknown; /** * Primitive value. */ export type PrimitiveValue = bigint | boolean | number | string | symbol | null | undefined; /** * Property descriptor. */ export type PropertyDescriptor = AccessorPropertyDescriptor | DataPropertyDescriptor | GenericPropertyDescriptor; /** * Property key. */ export type PropertyKey = string | symbol; export {};