useDynLib(SelectionTools)
# Export all names

exportPattern(".")

importFrom("grDevices",
           "dev.off", "pdf", "png")

importFrom("graphics",
           "axis", "box", "close.screen", "grid", "image",
           "lines", "par", "points", "screen", "split.screen",
           "text")

importFrom("stats",
           "cor", "dnorm", "nobs", "p.adjust", "qnorm",
           "quantile", "rbinom", "runif", "sd", "var", "setNames")

importFrom("utils",
           "capture.output", "head", "read.table", "write.table")


S3method(print, st.data.set.list)
S3method(print, st.hybrid.data.set.list)
S3method(print, st.switch.error)

S3method(print, st.lmm)
S3method(print, st.lmm.result)
S3method(Ops, st.lmm.result)
S3method(Math, st.lmm.result)
S3method(Summary, st.lmm.result)
S3method(as.data.frame, st.lmm.result)
S3method(as.matrix, st.lmm.result)
S3method(as.vector, st.lmm.result)
S3method(as.list, st.lmm.result)
S3method("[", st.lmm.result)
S3method("[[", st.lmm.result)
S3method(t, st.lmm.result)
S3method(summary, st.lmm)
S3method(print, st.lmm.selection.summary)
S3method(plot, st.lmm)
S3method(plot, st.lmm.selection.summary)
S3method(anova, st.lmm)
S3method(coef, st.lmm)
S3method(vcov, st.lmm)
S3method(fitted, st.lmm)
S3method(residuals, st.lmm)
S3method(logLik, st.lmm)
S3method(AIC, st.lmm)
S3method(BIC, st.lmm)
S3method(confint, st.lmm)
S3method(nobs, st.lmm)
S3method(df.residual, st.lmm)
S3method(formula, st.lmm)
S3method(model.matrix, st.lmm)
S3method(predict, st.lmm)
importFrom(stats, AIC, BIC, confint, anova, coef, vcov, fitted, residuals, logLik, df.residual, formula, model.matrix, predict)
export(st.lsm, st.lsm.cld)
export(st.lsm.test, st.lsm.mvcontrast)
S3method(print, st.lsm)
S3method(print, st.lsm.mvcontrast)
S3method(print, summary.st.lsm)
S3method(summary, st.lsm)
S3method(as.data.frame, st.lsm)
S3method(coef, st.lsm)
S3method(vcov, st.lsm)
S3method(confint, st.lsm)
S3method(pairs, st.lsm)
export(st.predict)
S3method(print, st.predict)
S3method(print, summary.st.predict)
S3method(summary, st.predict)
S3method(as.data.frame, st.predict)
S3method(coef, st.predict)
S3method(vcov, st.predict)
S3method(confint, st.predict)

S3method(model.frame, st.lmm)
S3method(terms, st.lmm)
S3method(weights, st.lmm)
S3method(update, st.lmm)
importFrom(stats, model.frame, terms, weights, update)

export(st.lmm.components, st.lmm.singular, st.lmm.pca)

S3method(drop1, st.lmm)
importFrom(stats, drop1)

S3method(profile, st.lmm)
S3method(confint, st.lmm.profile)
S3method(print, st.lmm.profile)
S3method(plot, st.lmm.profile)
importFrom(stats, profile)

S3method(stats::simulate, st.lmm)
export(st.lmm.simulate)

S3method(summary, st.lmm.bootstrap)
S3method(print, st.lmm.bootstrap)
S3method(confint, st.lmm.bootstrap)

S3method(summary, st.lmm.allfit)
S3method(print, st.lmm.allfit)

S3method(hatvalues, st.lmm)
S3method(rstandard, st.lmm)
importFrom(stats, hatvalues, rstandard)
export(st.lmm.diagnostics)

S3method(influence, st.lmm)
S3method(rstudent, st.lmm)
S3method(summary, st.lmm.influence)
S3method(print, st.lmm.influence)
S3method(plot, st.lmm.influence)
S3method(cooks.distance, st.lmm)
S3method(cooks.distance, st.lmm.influence)
S3method(dfbeta, st.lmm)
S3method(dfbeta, st.lmm.influence)
S3method(dfbetas, st.lmm)
S3method(dfbetas, st.lmm.influence)
importFrom(stats, influence, rstudent, cooks.distance, dfbeta, dfbetas)

S3method(summary,st.lmm.by)
S3method(coef,st.lmm.by)
S3method(confint,st.lmm.by)
S3method(print,st.lmm.by)
S3method(print,summary.st.lmm.by)

S3method(print,st.gwas)
S3method(plot,st.gwas)
S3method(as.data.frame,st.gwas)

S3method(emmeans::recover_data, st.lmm)
S3method(emmeans::emm_basis, st.lmm)
S3method(multcomp::modelparm, st.lmm)

S3method(print,st.gwas.summary)
S3method(print,st.ocs)
S3method(print,st.cross.plan)
S3method(print,st.oma)
S3method(print,propsd)
S3method(print,st.cross.allocation)
