useDynLib(spAbundance, .registration=TRUE)

export(simNMix)
export(simAbund)
export(simMsAbund)
export(simMsNMix)
export(simDS)
export(simMsDS)
export(NMix)
export(spNMix)
export(msNMix)
export(lfMsNMix)
export(sfMsNMix)
export(abund)
export(spAbund)
export(msAbund)
export(lfMsAbund)
export(sfMsAbund)
export(DS)
export(spDS)
export(msDS)
export(lfMsDS)
export(sfMsDS)
export(waicAbund)
export(ppcAbund)
export(svcAbund)
export(svcMsAbund)

S3method("predict", "NMix")
S3method("print", "NMix")
S3method("fitted", "NMix")
S3method("plot", "NMix")
S3method("summary", "NMix")

S3method("summary", "ppcAbund")

S3method("predict", "spNMix")
S3method("print", "spNMix")
S3method("fitted", "spNMix")
S3method("plot", "spNMix")
S3method("summary", "spNMix")

S3method("predict", "msNMix")
S3method("print", "msNMix")
S3method("fitted", "msNMix")
S3method("plot", "msNMix")
S3method("summary", "msNMix")

S3method("predict", "lfMsNMix")
S3method("print", "lfMsNMix")
S3method("fitted", "lfMsNMix")
S3method("plot", "lfMsNMix")
S3method("summary", "lfMsNMix")

S3method("predict", "sfMsNMix")
S3method("print", "sfMsNMix")
S3method("fitted", "sfMsNMix")
S3method("plot", "sfMsNMix")
S3method("summary", "sfMsNMix")

S3method("predict", "abund")
S3method("print", "abund")
S3method("fitted", "abund")
S3method("plot", "abund")
S3method("summary", "abund")

S3method("predict", "spAbund")
S3method("print", "spAbund")
S3method("fitted", "spAbund")
S3method("plot", "spAbund")
S3method("summary", "spAbund")

S3method("predict", "msAbund")
S3method("print", "msAbund")
S3method("fitted", "msAbund")
S3method("plot", "msAbund")
S3method("summary", "msAbund")

S3method("predict", "lfMsAbund")
S3method("print", "lfMsAbund")
S3method("fitted", "lfMsAbund")
S3method("plot", "lfMsAbund")
S3method("summary", "lfMsAbund")

S3method("predict", "sfMsAbund")
S3method("print", "sfMsAbund")
S3method("fitted", "sfMsAbund")
S3method("plot", "sfMsAbund")
S3method("summary", "sfMsAbund")

S3method("predict", "svcAbund")
S3method("print", "svcAbund")
S3method("fitted", "svcAbund")
S3method("plot", "svcAbund")
S3method("summary", "svcAbund")

S3method("predict", "svcMsAbund")
S3method("print", "svcMsAbund")
S3method("fitted", "svcMsAbund")
S3method("plot", "svcMsAbund")
S3method("summary", "svcMsAbund")

S3method("predict", "DS")
S3method("print", "DS")
S3method("fitted", "DS")
S3method("summary", "DS")
S3method("plot", "DS")

S3method("predict", "spDS")
S3method("print", "spDS")
S3method("fitted", "spDS")
S3method("plot", "spDS")
S3method("summary", "spDS")

S3method("predict", "msDS")
S3method("print", "msDS")
S3method("fitted", "msDS")
S3method("plot", "msDS")
S3method("summary", "msDS")

S3method("predict", "lfMsDS")
S3method("print", "lfMsDS")
S3method("fitted", "lfMsDS")
S3method("plot", "lfMsDS")
S3method("summary", "lfMsDS")

S3method("predict", "sfMsDS")
S3method("print", "sfMsDS")
S3method("fitted", "sfMsDS")
S3method("plot", "sfMsDS")
S3method("summary", "sfMsDS")

importFrom("stats", "dist", "dnbinom", "rbinom", "rnorm", "rnbinom", "rpois", "coefficients", "glm", "is.empty.model", "model.matrix", "model.response", "terms", "runif", "quantile", "dbinom", "var", "rgamma", "sd", "integrate", "rmultinom")
importFrom("coda", "mcmc", "gelman.diag", "mcmc.list", "effectiveSize")
importFrom("abind", "abind")
importFrom("RANN", "nn2")
importFrom("lme4", "findbars", "mkReTrms", "nobars")
importFrom("foreach", "foreach", "%do%", "%dopar%")
importFrom("doParallel", "registerDoParallel", "stopImplicitCluster")
importFrom("methods", "is")
