useDynLib(switchSelection, .registration=TRUE)
importFrom(Rcpp, evalCpp)
import(hpa, mnorm, gena, methods)

importFrom("stats", "AIC", "as.formula", "binomial", "coef",
           "complete.cases", "cov", "glm", "lm", "lm.influence",
           "logLik", "model.frame", "na.exclude", "na.omit", "na.pass",
           "optim", "pchisq", "pnorm", "predict", "qnorm", "residuals",
           "terms", "update", "nobs", "sigma", "fitted", "vcov",
           "printCoefmat", "rnorm", "quantile", "sd")
importFrom("utils", "hasName", "methods")
importFrom("methods", "is")

export("msel")

export("loocv", "boot")

export("formula_merge", "formula_split")

export("starsVector")

export("test_msel", "lrtest_msel")

export("update_msel")

export("bootstrap_msel", "bootstrap_combine_msel")

export("struct_msel")

S3method("predict", "msel")
S3method("summary", "msel")
S3method("logLik", "msel")
S3method("print", "summary.msel")
S3method("print", "msel")
S3method("nobs", "msel")
S3method("coef", "msel")
S3method("vcov", "msel")
S3method("formula", "msel")
S3method("sigma", "msel")
S3method("fitted", "msel")

S3method("summary", "test_msel")
S3method("print", "summary.test_msel")

S3method("print", "lrtest_msel")
S3method("summary", "lrtest_msel")
S3method("print", "summary.lrtest_msel")

S3method("print", "struct_msel")
