useDynLib(sommer, .registration=TRUE)
importFrom(Rcpp, evalCpp)
#exportPattern("^[[:alpha:]]+")


export(
       dfToMatrix
       )

## FUN_main
export(mmes, vsm,
       mmer, vsr,
       GWAS,
       MNR)

## FUN_special and FUN_vsc and FUN_vsrgvsr
export( # small matrices constructors
       unsm, unsm2, fixm, 
       # mmes covariance functions
       atm,csm,dsm,usm,vsm, ism, covm, strm, ar1m, ar2m, ar3m, dsumm,
       mam, fam, antem, corgm, ownm,
       rrm, maternm , toeplitzm, sar, car, metricm,
       # mmes covariance functions
       usr, dsr, csr, atr,  
       # mmer DEPRECATED
        vpredict, vs        
       )

## FUN_spatial
export( spl2Dc,spl2Dmats,tpsmmbwrapper)

## FUN_stats
export( 
       corImputation,
       r2, postPEV
       )

## FUN_relationships
export(A.mat, D.mat, E.mat, H.mat, APY)

## FUN_utils
export( 
        # mmes
       summary.mmes, residuals.mmes, fitted.mmes, coef.mmes,
       anova.mmes, plot.mmes, predict.mmes, pmonitor,
       loadings_mmes, scores_mmes, covparams_mmes, covparams_mmes_se, meffects_mmes,
       wald_mmes,
       rotate_back_mmes,
       # GLMM
       binm, familym,
       # multivariate
       stackTraits, covmatrix_mmes,
        # others
       randef)

# S3 METHODS mmes
S3method(vpredict, mmes)

# S3 METHODS mmes
S3method(anova, mmes)
S3method(coef, mmes)
S3method(fitted, mmes)
S3method(plot, mmes)
S3method(predict, mmes)
S3method(print, predict.mmes)
S3method(print, residuals.mmes)
S3method(print, fitted.mmes)
S3method(print, coef.mmes)
S3method(print, summary.mmes)
S3method(print, wald.mmes)
S3method(print, mmesSolve)
S3method(residuals, mmes)
S3method(summary, mmes)
S3method(summary, mmer)
S3method("[", binm)



###########
## full imports
###########
  import("methods")
  import("Matrix")
  import("MASS")
  import("crayon")
  import("enhancer")
############
# IMPORTS
############
  importFrom("graphics", "abline", "axis", "layout", "legend",
             "lines", "plot", "points", "rect", "text", "locator",
             "par", "grid", "plot.new", "polygon","segments", "title")
  importFrom("utils", "combn", "setTxtProgressBar", "txtProgressBar",
             "available.packages", "contrib.url","str")
  importFrom("methods", "as")
#  importFrom("crayon", "blue")

### extra suggested by CRAN
  importFrom("grDevices", "col2rgb", "colorRampPalette", "gray.colors",
             "rgb","dev.cur", "dev.size", "xy.coords", "topo.colors")
  importFrom("stats", "reformulate", "as.formula", "cov", "density", "gaussian", "glm",
             "lm", "median", "optimize", "pbeta", "pchisq","pnorm", "predict",
             "printCoefmat", "qqnorm", "smooth.spline", "var", "rnorm",
             "model.matrix","na.omit", "p.adjust","kmeans","dist", "runif",
             "nobs", "ppoints", "sd", "model.frame", "model.response", "na.pass",
             "cor", "optim", "rchisq","quantile","deriv","terms.formula",
             "aggregate","pf","terms", "reshape","ave", "plogis", "qlogis")


