## import from other packages
importFrom("Formula", "Formula", "model.part")
importFrom("pbapply", "pblapply", "pbsapply")
importFrom("stats4", "mle")
#importFrom("dclone", "dcsd")
#importFrom("dcmle", "makeDcFit", "gelman.diag")

importFrom("Matrix", "nearPD")
importFrom("graphics", "abline", "legend", "lines", "par", "plot",
    "points", "polygon")
importFrom("stats", ".getXlevels", "aggregate", "as.formula",
    "binomial", "coef", "cor", "cov", "dbinom", "dpois",
    "extractAIC", "factor.scope", "fitted", "formula",
    "glm.fit", "make.link", "model.response", "na.pass",
    "optim", "optimize", "pchisq", "pnorm", "poisson",
    "printCoefmat", "qnorm", "quantile", "rbinom", "rpois",
    "runif", "sd", "terms.formula", "uniroot",
    "case.names", "drop1",
    "logLik", "model.matrix", "model.frame", "terms", "simulate",
    "update.formula", "update", "vcov", "variable.names",
    "AIC", "BIC")

## exported svocc functions
export("svocc", "svocc.fit", "svocc.step")
## exported svabu functions
export("svabu", "svabu.fit", "svabu.step", "zif")
## exported cmulti functions
export("cmulti", "cmulti.fit", "cmulti.fit0", "cmulti2.fit")
## exported helper functions
export("bootstrap", "extractMLE", "extractBOOT",
    "predictMCMC", "is.present", "drop.scope.svisit")
## model selection helper functions
export("AUC", "rocplot")
## QPAD
export(load_BAM_QPAD, hbootindex, convertEDR)

## methods for svocc class
S3method("print", "svocc")
S3method("drop1", "svocc")
S3method("coef", "svocc")
S3method("print", "summary.svocc")
S3method("summary", "svocc")
S3method("vcov", "svocc")
S3method("simulate", "svocc")
S3method("AUC", "svocc")
S3method("rocplot", "svocc")
S3method("coef", "summary.svocc")
S3method("extractBOOT", "svocc")
S3method("extractMLE", "svocc")
S3method("confint", "svocc")
S3method("model.matrix", "svocc")
S3method("predict", "svocc")

## methods for svabu class
S3method("plot", "svabu")
S3method("drop1", "svabu")
S3method("coef", "svabu")
S3method("print", "svabu")
S3method("print", "summary.svabu")
S3method("summary", "svabu")
S3method("vcov", "svabu")
S3method("simulate", "svabu")
S3method("coef", "summary.svabu")
S3method("confint", "svabu")
S3method("extractBOOT", "svabu")
S3method("model.matrix", "svabu")
S3method("predict", "svabu")
S3method("predictMCMC", "svabu")
S3method("fitted", "svabu")

## methods for svisit parent class
S3method("is.present", "svisit")
S3method("bootstrap", "svisit")
S3method("case.names", "svisit")
S3method("logLik", "svisit")
S3method("terms", "svisit")
S3method("update", "svisit")
S3method("variable.names", "svisit")
S3method("extractAIC", "svisit")

## cmulti methods
S3method("print", "cmulti")
S3method("vcov", "cmulti")
S3method("summary", "cmulti")
S3method("print", "summary.cmulti")
S3method("logLik", "cmulti")
S3method("fitted", "cmulti")
S3method("model.frame", "cmulti")
S3method("model.matrix", "cmulti")
S3method("predict", "cmulti")

