function enumeration() {
	// NOTE: the following should match the C `dtypes.h` enumeration!!!!
	return {
		// Boolean data types:
		'bool': 0,

		// Integer data types:
		'int8': 1,
		'uint8': 2,
		'uint8c': 3,
		'int16': 4,
		'uint16': 5,
		'int32': 6,
		'uint32': 7,
		'int64': 8,
		'uint64': 9,
		// 'int128': 10, // uncomment once supported
		// 'uint128': 11,
		// 'int256': 12,
		// 'uint256': 13,

		// Floating-point data types:
		// 'float16': 14,
		// 'bfloat16': 15,
		'float32': 10,
		'float64': 11,
		// 'float128': 18, // uncomment once supported

		// Complex floating-point number data types:
		'complex64': 12,
		'complex128': 13,

		// Data type for "binary" data (i.e., data stored in a Node.js `Buffer` object):
		'binary': 14,

		// Data type for "generic" JavaScript values (objects):
		'generic': 15,

		// Define a signaling value which is guaranteed not to be a valid type enumeration value:
		'notype': 17,

		// Indicate the start of user defined type numbers (leaving room for type growth above):
		'userdefined_type': 256
	};
}
Returns an object mapping supported data type strings to enumeration constants.

## Notes

-   Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `INT8 == 0`). Instead, the object should be used in an opaque manner.
-   The main purpose of this function is JavaScript and C inter-operation of ndarray objects. While certain dtypes, such as "generic" and "binary", have special behavior in JavaScript, they do not have a direct complement in C.

@private
@returns {Object} object mapping supported dtypes to enumeration constants

@example
var table = enumeration();
// returns <Object>