useDynLib(ordinal, .registration = TRUE)


importFrom(graphics,
           plot)
importFrom(ucminf, ucminf)
import(Matrix)
## importFrom(nlme,
##            ranef,
##            VarCorr)
## importFrom(numDeriv,
##            hessian,
##            grad)
importFrom(MASS,
           ginv,
           addterm,
           dropterm)
importFrom(stats,
           coef,
           confint,
           nobs,
           logLik,
           profile,
           vcov,
           extractAIC,
           anova,
           fitted## ,
           ## terms
           ## update
           )

# Functions:
export(clm)
export(clm.fit)
export(clmm)
export(clm.control)
export(clmm.control)
export(slice)
export(convergence)
export(drop.coef)
export(nominal_test)
export(scale_test)

## NOTE: Also exporting ranef.clmm and VarCorr.clmm to make sure the
## clmm-methods work after loading nlme (or lme4):
export(ranef, ranef.clmm, condVar, VarCorr, VarCorr.clmm)
## export(ranef, ranef.clmm, condVar, condVar.clmm, VarCorr, VarCorr.clmm)

export(gnorm, glogis, gcauchy,
       pgumbel, dgumbel, ggumbel, qgumbel, rgumbel,
       plgamma, dlgamma, glgamma ## ,
       ## pAO, dAO, gAO,
       )

## Methods:
S3method(print, clm)
S3method(vcov, clm)
S3method(summary, clm)
S3method(print, summary.clm)

S3method(convergence, clm)
S3method(print, convergence.clm)

S3method(slice, clm)
S3method(plot, slice.clm)

S3method(anova, clm)
S3method(print, anova.clm)
S3method(predict, clm)
S3method(coef, clm)
S3method(nobs, clm)
S3method(coef, summary.clm)

S3method(scale_test, clm)
S3method(nominal_test, clm)

S3method(profile, clm)
S3method(confint, clm)
S3method(confint, profile.clm)
S3method(plot, profile.clm)

S3method(logLik, clm)
S3method(extractAIC, clm)
S3method(model.matrix, clm)
S3method(model.frame, clm)

S3method(print, clmm)
S3method(vcov, clmm)
S3method(summary, clmm)
S3method(print, summary.clmm)
S3method(logLik, clmm)
S3method(extractAIC, clmm)
S3method(anova, clmm)
S3method(nobs, clmm)
## S3method(profile, clmm)
## S3method(confint, profile.clmm)
## S3method(plot, profile.clmm)
## S3method(update, clmm)
## S3method(fixef, clmm)
S3method(ranef, clmm)
S3method(condVar, clmm)
S3method(VarCorr, clmm)


##################################################################
### clm2 stuff:

## Functions:
export(clm2)
export(clmm2)
export(clm2.control)
export(clmm2.control)


## Methods:
S3method(print, clm2)
S3method(vcov, clm2)
S3method(summary, clm2)
S3method(print, summary.clm2)
S3method(anova, clm2)
S3method(predict, clm2)
S3method(profile, clm2)
S3method(confint, clm2)
S3method(confint, profile.clm2)
S3method(plot, profile.clm2)
S3method(logLik, clm2)
S3method(extractAIC, clm2)
S3method(update, clm2)
S3method(dropterm, clm2)
S3method(addterm, clm2)

S3method(print, clmm2)
S3method(vcov, clmm2)
S3method(summary, clmm2)
S3method(print, summary.clmm2)
S3method(anova, clmm2)
S3method(profile, clmm2)
S3method(confint, profile.clmm2)
S3method(plot, profile.clmm2)
S3method(update, clmm2)
