#exportPattern("^[[:alpha:]]+")

importFrom(gbm,gbm,predict.gbm)
importFrom(nnet,nnet)
importFrom(e1071,svm)
importFrom(randomForest,randomForest)
import(kknn)
#importFrom(kknn,kknn)
#import(doParallel)
importFrom(doParallel,registerDoParallel)
import(methods)
importFrom(foreach,foreach,'%dopar%')

## utils.R
export(generate.partition, generate.partitions
  , rmse.error, load.object, extract.baselearner.name
  , regression.extract.response)

## integrators.R
#  classes
exportClasses(Regression.Integrator.Config, Regression.Integrator.FitObj
  , Regression.Select.Config, RegressionSelectPred, Regression.Select.FitObj)

# methods
exportMethods(Regression.Integrator.Fit, Regression.Select.Fit)

## baselearners.R
# classes
exportClasses(BaseLearner.Config, Regression.Config, RegressionEstObj
  , OptionalNumeric, OptionalInteger, BaseLearner.FitObj, Regression.FitObj
  , BaseLearner.CV.FitObj, Regression.CV.FitObj, Instance, Instance.List
  , OptionalCharacter
  , BaseLearner.CV.Batch.FitObj, Regression.CV.Batch.FitObj
  , BaseLearner.Batch.FitObj, Regression.Batch.FitObj)

# methods
exportMethods(BaseLearner.Fit, validate)
S3method(predict, Regression.CV.FitObj)
S3method(predict, Regression.CV.Batch.FitObj)
S3method(plot, Regression.CV.Batch.FitObj)
S3method(predict, Regression.Batch.FitObj)
S3method(plot, Regression.Batch.FitObj)
S3method(print, validate.Regression.Batch.FitObj)

# functions
export(make.configs, Regression.CV.Fit, make.instances
  , Regression.CV.Batch.Fit, Regression.Batch.Fit)
  
# GBM
exportClasses(GBM.Regression.Config, GBM.Regression.FitObj)
S3method(predict, GBM.Regression.FitObj)

# NNET
exportClasses(NNET.Regression.Config, NNET.Regression.FitObj)
S3method(predict, NNET.Regression.FitObj)

# KNN
exportClasses(KNN.Regression.Config, KNN.Regression.FitObj)
S3method(predict, KNN.Regression.FitObj)

# RF
exportClasses(RF.Regression.Config, RF.Regression.FitObj)
S3method(predict, RF.Regression.FitObj)

# SVM
exportClasses(SVM.Regression.Config, SVM.Regression.FitObj)
S3method(predict, SVM.Regression.FitObj)





