useDynLib("eRm", .registration = TRUE)

import("stats", "graphics", "methods", "lattice", "grDevices", "colorspace")

importFrom("splines", "interpSpline")
importFrom("MASS", "mvrnorm")
importFrom("Matrix", "bdiag")
importFrom("psych", "smc")

export(RM)
export(LLTM)
export(RSM)
export(LRSM)
export(PCM)
export(LPCM)
export(LRtest)
export(MLoef)
export(itemfit)
export(person.parameter)
export(personfit)
export(plotDIF)
export(plotGOF)
export(plotICC)
export(plotjointICC)
export(plotPImap)
export(plotPWmap)
export(pmat)
export(Waldtest)
export(IC)
export(thresholds)
export(sim.2pl)
export(sim.rasch)
export(sim.xdim)
export(sim.locdep)
export(stepwiseIt)
export(gofIRT)
export(NPtest)
export(llra.datprep)
export(build_W)
export(collapse_W)
export(LLRA)
export(plotGR)
export(plotTR)
export(plotINFO)
export(item_info)
export(test_info)
export(i_info)
export(SepRel)
export(PersonMisfit)

S3method(print, eRm)
S3method(summary, eRm)
S3method(summary, ppar)
S3method(summary, LR)
S3method(summary, MLoef)
S3method(model.matrix, eRm)
S3method(coef, eRm)
S3method(coef, ppar)
S3method(vcov, eRm)
S3method(print, LR)
S3method(print, MLobj)
S3method(print, MLoef)
S3method(print, ifit)
S3method(print, wald)
S3method(print, pfit)
S3method(print, ppar)
S3method(print, step)
S3method(print, MisfittingPersons)
S3method(summary, MisfittingPersons)
S3method(itemfit, ppar)
S3method(PersonMisfit, ppar)
S3method(LRtest, Rm)
S3method(person.parameter, eRm)
S3method(personfit, ppar)
S3method(plotGOF, LR)
S3method(plotICC, Rm)
S3method(plotjointICC, dRm)
S3method(plot, ppar)
S3method(pmat, ppar)
S3method(pmat, default)
S3method(residuals, ppar)
S3method(Waldtest, Rm)
S3method(logLik, eRm)
S3method(logLik, ppar)
S3method(print, logLik.eRm)
S3method(print, logLik.ppar)
S3method(print, threshold)
S3method(summary, threshold)
S3method(thresholds, eRm)
S3method(print, ICr)
S3method(confint, eRm)
S3method(confint, ppar)
S3method(confint, threshold)
S3method(IC, ppar)
S3method(IC, default)
S3method(stepwiseIt, eRm)
S3method(gofIRT, ppar)
S3method(predict, ppar)
S3method(summary, gof)
S3method(print, gof)

S3method("print", Tmdobj)
S3method("print", Tpbisobj)
S3method("print", T1obj)
S3method("print", T1mobj)
S3method("print", T1lobj)
S3method("print", T2obj)
S3method("print", T2mobj)
S3method("print", T4obj)
S3method("print", T10obj)
S3method("print", T11obj)

S3method(anova, eRm)
S3method(print, eRm_anova)
S3method(anova, llra)
S3method(print, llra)
S3method(print,summary.llra)
S3method(summary, llra)
S3method(print, eRm_SepRel)
S3method(summary, eRm_SepRel)

# from RaschSampler
export("rsampler")
export("rstats")
export("rsctrl")
export("rsextrobj")
export("rsextrmat")
export("phi.range")
S3method("summary", "RSctr")
S3method("summary", "RSmpl")
S3method("summary", "RSmplext")
