'use strict';

import {Adapter} from './adapters/Adapter';
import {MemoryAdapter} from './adapters/MemoryAdapter';
import {MongoDBAdapter} from './adapters/MongoDBAdapter';
export const adapters = {
  Adapter,
  MemoryAdapter,
  MongoDBAdapter
};

import {BaseModel} from './BaseModel'
import {PersistedModel} from './PersistedModel';
export {
  BaseModel,
  PersistedModel
};

import {manager} from './manager'; 
export {manager}; 

import * as validators from './validators/validators';
export {validators};

import * as decorators from './decorators';
export {decorators};

import {
  IBelongsToRelation, 
  IHasManyRelation, 
  IConnection, 
  IConnectionOptions, 
  IManager, 
  IAdapter, 
  IBaseModelData, 
  IPersistedModel, 
  IBaseModelConstructor
} from './interfaces';
export {
  IBelongsToRelation, 
  IHasManyRelation, 
  IConnection, 
  IConnectionOptions, 
  IManager, 
  IAdapter, 
  IBaseModelData, 
  IPersistedModel, 
  IBaseModelConstructor
};