'use strict';
var DataType = require('./data-type.js');
var Boolean = require('./boolean.js');
var Text = require('./text.js');
var Email = require('./email.js');
var Integer = require('./integer.js');
var Decimal = require('./decimal.js');
var Enum = require('./enum.js');
var DateTime = require('./date-time.js');
/**
* Contains data type components and definitions.
*
* @namespace bo.dataTypes
*
* @property {function} DataType - {@link bo.dataTypes.DataType Data type} constructor to create new definitions.
* @property {object} Boolean - Data type instance that defines {@link bo.dataTypes.Boolean Boolean} data.
* @property {object} Text - Data type instance that defines {@link bo.dataTypes.Text Text} data.
* @property {object} Email - Data type instance that defines {@link bo.dataTypes.Email Email} data.
* @property {object} Integer - Data type instance that defines {@link bo.dataTypes.Integer Integer} data.
* @property {object} Decimal - Data type instance that defines {@link bo.dataTypes.Decimal Decimal} data.
* @property {function} Enum - {@link bo.dataTypes.Enum Enum} constructor to create new enumeration data type.
* @property {object} DateTime - Data type instance that defines {@link bo.dataTypes.DateTime DateTime} data.
*/
var index = {
DataType: DataType,
Boolean: new Boolean(),
Text: new Text(),
Email: new Email(),
Integer: new Integer(),
Decimal: new Decimal(),
Enum: Enum,
DateTime: new DateTime()
};
// Immutable object.
Object.freeze(index);
module.exports = index;