import (secr)
import (parallel)

importFrom (graphics, "axis", "box", "contour", "plot", "points", "segments", 
    "mtext", "lines", "par", "symbols")
importFrom (utils, "packageDescription", "packageVersion", "flush.console", "combn", "head", "tail")
importFrom (MASS, "ginv", "eqscplot")
importFrom (nlme, "fdHess")
importFrom (stringr, "str_trim", "str_split", "str_c", "str_pad")
importFrom (plyr, "count", "rbind.fill")
importFrom (abind, "abind")
importFrom (stats, "AIC", "coef", "logLik", "as.formula", "model.matrix", "nlm", "optim", "vcov",
             "predict", "qnorm", "dpois", "dbinom", "dnbinom", "dgamma", "runif", "sd", "median",
             "uniroot")
importFrom (methods, "formalArgs")
importFrom (Rcpp, "evalCpp")
importFrom (RcppParallel, "RcppParallelLibs", "setThreadOptions", "defaultNumThreads")
# suggests, not imports from 1.3.1
# importFrom (R2ucare, "test3sr", "test3sm", "test2ct", "test2cl", "overall_CJS")

export (openCR.fit)
export (par.openCR.fit)
export (openCRlist)
export (cloned.fit)
export (make.table)
export (JS.counts)
export (JS.direct)
export (m.array)
export (bd.array)
export (age.matrix)
export (read.inp)
export (squeeze)
export (unsqueeze)
export (primarysessions)
export (secondarysessions)
export (sim.nonspatial)
export (runsim.nonspatial)
export (runsim.RMark)
export (runsim.spatial)
export (sumsims)
export (classMembership)

export (openCR.design)
export (openCR.esa)
export (openCR.pdot)

export (make.kernel)
export (dkernel)
export (pkernel)
export (qkernel)
export (matchscale)
export (ucare.cjs)
export (moving.fit)
export (extractFocal)

export (stratify)

export (strata)
S3method(strata, default)
export ('strata<-')

S3method (plot, openCR)
S3method (derived, openCR)
S3method (derived, openCRlist)
S3method (LLsurface, openCR)
S3method (plot, kernel)
S3method (summary, kernel)
S3method (print, summary.kernel)

S3method (print, openCR)
S3method (summary, openCR)
S3method (print, summary.openCR)
S3method (AIC, summary.openCR)
S3method (print, derivedopenCR)
S3method (plot, derivedopenCR)
S3method (predict, openCR)
S3method (vcov, openCR)
S3method (AIC, openCR)
S3method (logLik, openCR)
S3method (coef, openCR)
S3method (classMembership, openCR)
# S3method (makeNewData, openCR)
export(openCR.make.newdata)

S3method (rev, capthist)

S3method (AIC, openCRlist)
S3method (predict, openCRlist)

useDynLib (openCR, .registration = TRUE)

## DEBUGGING ONLY (cpp functions not documented)
## exportPattern("*cpp")


