import(Boom)

importFrom("grDevices", "gray")
importFrom("graphics", "abline", "barplot", "boxplot", "hist", "legend", "par",
           "plot", "strwidth")
importFrom("stats", ".checkMFClasses", ".getXlevels", "as.formula",
           "coef", "delete.response", "dt", "median", "model.frame",
           "model.matrix", "model.matrix.default",
           "model.response", "na.omit", "na.pass", "plogis", "plot.ts", "pnorm",
           "qchisq", "qlogis", "qnorm", "quantile", "reshape", "rnorm", "rt", "sd",
           "terms", "update", "var")
importFrom("utils", "help", "tail")

export(
       GetPredictorMatrix,
       IndependentSpikeSlabPrior,
       LogitZellnerPrior,
       MultinomialLogitSpikeSlabPrior,
       PlotLmSpikeCoefficients,
       PlotLmSpikeResiduals,
       PlotLogitSpikeFitSummary,
       PlotLogitSpikeResiduals,
       PlotProbitSpikeResiduals,
       PlotMarginalInclusionProbabilities,
       PlotModelSize,
       PoissonZellnerPrior,
       SpikeSlabGlmPrior,
       SpikeSlabPrior,
       SpikeSlabPriorBase,
       StudentIndependentSpikeSlabPrior,
       StudentSpikeSlabPrior,
       SummarizeSpikeSlabCoefficients,
       lm.spike,
       logit.spike,
       mlm.spike,
       model.matrix.glm.spike,
       plot.lm.spike,
       poisson.spike,
       predict.lm.spike,
       predict.logit.spike,
       predict.probit.spike,
       predict.poisson.spike,
       probit.spike,
       residuals.lm.spike,
       summary.lm.spike,
       summary.logit.spike,
       summary.probit.spike
)

S3method(model.matrix, glm.spike)

S3method(plot, lm.spike)
S3method(predict, lm.spike)
S3method(residuals, lm.spike)
S3method(summary, lm.spike)

S3method(print, summary.lm.spike)

S3method(plot, logit.spike)
S3method(predict, logit.spike)
S3method(summary, logit.spike)

S3method(plot, probit.spike)
S3method(predict, probit.spike)
S3method(summary, probit.spike)
S3method(print, summary.probit.spike)

S3method(plot, poisson.spike)
S3method(predict, poisson.spike)

S3method(print, summary.logit.spike)
useDynLib(BoomSpikeSlab,
          analysis_common_r_do_spike_slab,
          logit_spike_slab_wrapper,
          analysis_common_r_multinomial_logit_spike_slab,
          analysis_common_r_poisson_regression_spike_slab,
          probit_spike_slab_wrapper)
