import(stats, MASS)

importFrom("grDevices", "dev.flush", "dev.hold", "dev.new",
           "devAskNewPage", "extendrange")

importFrom("graphics", "abline", "identify", "mtext", "panel.smooth",
           "par", "plot", "strheight", "text", "arrows", "axis", "barplot", "points")

importFrom("utils", "combn", "memory.limit", "object.size", "str", "head")

export(e.svydesign, e.calibrate, pop.template, population.check, svystatTM, svystatR, svystatQ, svystatL,
svystatB, write.svystat, SE, VAR, cv, deff, des.addvars, bounds.hint, g.range, "%into%", collapse.strata,
find.lon.strata, fill.template, aux.estimates, check.cal, weights, contr.off, contrasts.RG, contrasts.off,
contrasts.reset, CoV, Corr, Zapsmall, get.residuals, des.merge, estimator.kind, GVF.db, gvf.input,
fit.gvf, getR2, getBest, predictCV, drop.gvf.points, svystat, pop.desc, svystatS, svystatSR, ext.calibrated,
trimcal, prep.calBeta, pop.calBeta, pop.fuse, smooth.strat.jump, UWE, pop.plot, svyDelta, details,
svySigma, svySigma2, n.prop, prec.prop, n.comp2prop, pow.comp2prop, mde.comp2prop, n.mean, prec.mean,
n.comp2mean, pow.comp2mean, mde.comp2mean, get.linvar, PlotCI, BarPlotCI)

S3method(print,summary.survey.design)
S3method(print,summary.survey.design2)
S3method(print,survey.design)
S3method(print,survey.design2)
S3method(print,analytic)
S3method(print,summary.analytic)
S3method(print,svystat)
S3method(print,svyratio)
S3method(print,svyratio_separate)
S3method(print,svyquantile)
S3method(print,calfun)
S3method(print,bounds.hint)
S3method(print,trimfun)
S3method(print,svystatB.by.list)

S3method(coef,svystat)
S3method(coef,svyratio)
S3method(coef,svyby)
S3method(coef,svystatTM)
S3method(coef,svystatR)
S3method(coef,svystatS)
S3method(coef,svystatSR)
S3method(coef,svystatL)
S3method(coef,svystatQ)
S3method(coef,svystatB)
S3method(coef,svystatB.by.list)
S3method(coef,svystat.gr)
S3method(coef,svydelta)
S3method(coef,svyDelta)
S3method(coef,svySigma)
S3method(coef,svySigma2)

S3method(SE,default)
S3method(SE,svyratio)
S3method(SE,svyquantile)
S3method(SE,svyby)
S3method(SE,svystatTM)
S3method(SE,svystatR)
S3method(SE,svystatS)
S3method(SE,svystatSR)
S3method(SE,svystatL)
S3method(SE,svystatQ)
S3method(SE,svystatB)
S3method(SE,svystatB.by.list)
S3method(SE,svystat.gr)
S3method(SE,svyDelta)
S3method(SE,svySigma)
S3method(SE,svySigma2)

S3method(VAR,default)
S3method(VAR,svyby)
S3method(VAR,svystatTM)
S3method(VAR,svystatR)
S3method(VAR,svystatS)
S3method(VAR,svystatSR)
S3method(VAR,svystatL)
S3method(VAR,svystatQ)
S3method(VAR,svystatB)
S3method(VAR,svystatB.by.list)
S3method(VAR,svystat.gr)
S3method(VAR,svyDelta)
S3method(VAR,svySigma)
S3method(VAR,svySigma2)

S3method(cv,default)
S3method(cv,svyby)
S3method(cv,svyratio)
S3method(cv,svystatTM)
S3method(cv,svystatR)
S3method(cv,svystatS)
S3method(cv,svystatSR)
S3method(cv,svystatL)
S3method(cv,svystatQ)
S3method(cv,svystatB)
S3method(cv,svystatB.by.list)
S3method(cv,svystat.gr)
S3method(cv,svyDelta)
S3method(cv,svySigma)
S3method(cv,svySigma2)

S3method(deff,default)
S3method(deff,svyratio)
S3method(deff,svyby)
S3method(deff,svystatTM)
S3method(deff,svystatR)
S3method(deff,svystatS)
S3method(deff,svystatSR)
S3method(deff,svystatL)
S3method(deff,svystatB)
S3method(deff,svystatB.by.list)
S3method(deff,svystat.gr)
S3method(deff,svyDelta)
S3method(deff,svySigma)
S3method(deff,svySigma2)

S3method(confint,svyquantile)
S3method(confint,svyby)
S3method(confint,svystatTM)
S3method(confint,svystatR)
S3method(confint,svystatL)
S3method(confint,svystatQ)
S3method(confint,svystatB)
S3method(confint,svystatB.by.list)
S3method(confint,svystat.gr)
S3method(confint,svyDelta)
S3method(confint,svySigma)
S3method(confint,svySigma2)

S3method(vcov,svystat)
S3method(vcov,svyratio)
S3method(vcov,svyquantile)
S3method(vcov,svyby)
S3method(vcov,svystatTM)
S3method(vcov,svystatR)
S3method(vcov,svystatS)
S3method(vcov,svystatSR)
S3method(vcov,svystatL)
S3method(vcov,svystatQ)
S3method(vcov,svystatB)
S3method(vcov,svystatB.by.list)
S3method(vcov,svystat.gr)
S3method(vcov,svyDelta)
S3method(vcov,svySigma)
S3method(vcov,svySigma2)

S3method(summary,svystatB)
S3method(summary,svystatB.by)
S3method(summary,svystatB.by.list)

S3method(svymean,survey.design)
S3method(svymean,survey.design2)
S3method(svymean,cal.analytic)

S3method(svytotal,survey.design)
S3method(svytotal,survey.design2)
S3method(svytotal,cal.analytic)

S3method(svyratio,survey.design)
S3method(svyratio,survey.design2)
S3method(svyratio,cal.analytic)

S3method(svylin,survey.design2)
S3method(svylin,cal.analytic)

S3method(svylinB,survey.design2)
S3method(svylinB,cal.analytic)

S3method(svyquantile,survey.design)
S3method(svyquantile,analytic)

S3method(svyby,default)

S3method(Zapsmall,default)
S3method(Zapsmall,data.frame)

S3method(weights,survey.design)
S3method(summary,survey.design2)
S3method(summary,analytic)
S3method(dim,survey.design)
S3method(dimnames,survey.design)
S3method(subset,survey.design)
S3method(update,survey.design)
S3method(na.exclude,survey.design)
S3method(na.fail,survey.design)
S3method(na.omit,survey.design)
S3method(model.frame,survey.design)
S3method(as.data.frame,svystat)
S3method(`[`, survey.design)
S3method(`[`, survey.design2)
S3method(`[`, cal.analytic)
S3method(`[<-`, survey.design)

S3method(print,GVF.db)
S3method(str,GVF.db)
S3method(dim,GVF.db)

S3method(plot,gvf.input)
S3method(plot,gvf.input.gr)

S3method(fit.gvf,default)
S3method(fit.gvf,gvf.input)
S3method(fit.gvf,gvf.input.gr)

S3method(`[`, gvf.fits)
S3method(`[[`, gvf.fits)
S3method(print, gvf.fits)
S3method(print, gvf.fit)
S3method(print, gvf.fits.gr)
S3method(print, gvf.fit.gr)
S3method(summary, gvf.fits)
S3method(summary, gvf.fit)
S3method(summary, gvf.fits.gr)
S3method(summary, gvf.fit.gr)
S3method(print, summary.gvf.fits)
S3method(print, summary.gvf.fit)
S3method(plot, gvf.fits)
S3method(plot, gvf.fit)
S3method(plot, gvf.fits.gr)
S3method(plot, gvf.fit.gr)

S3method(predict, gvf.fits)
S3method(predict, gvf.fit)
S3method(predict, gvf.fits.gr)
S3method(predict, gvf.fit.gr)
S3method(rstandard, gvf.fits)
S3method(rstandard, gvf.fit)
S3method(rstandard, gvf.fits.gr)
S3method(rstandard, gvf.fit.gr)
S3method(rstudent, gvf.fits)
S3method(rstudent, gvf.fit)
S3method(rstudent, gvf.fits.gr)
S3method(rstudent, gvf.fit.gr)
S3method(anova, gvf.fits)
S3method(anova, gvf.fit)
S3method(anova, gvf.fits.gr)
S3method(anova, gvf.fit.gr)
S3method(coef, gvf.fits)
S3method(coef, gvf.fit)
S3method(coef, gvf.fits.gr)
S3method(coef, gvf.fit.gr)
S3method(effects, gvf.fits)
S3method(effects, gvf.fit)
S3method(effects, gvf.fits.gr)
S3method(effects, gvf.fit.gr)
S3method(residuals, gvf.fits)
S3method(residuals, gvf.fit)
S3method(residuals, gvf.fits.gr)
S3method(residuals, gvf.fit.gr)
S3method(fitted, gvf.fits)
S3method(fitted, gvf.fit)
S3method(fitted, gvf.fits.gr)
S3method(fitted, gvf.fit.gr)
S3method(vcov, gvf.fits)
S3method(vcov, gvf.fit)
S3method(vcov, gvf.fits.gr)
S3method(vcov, gvf.fit.gr)

S3method(drop.gvf.points, default)
S3method(drop.gvf.points, gvf.fit)
S3method(drop.gvf.points, gvf.fit.gr)

S3method(predictCV, default)
S3method(predictCV, gvf.fits)
S3method(predictCV, gvf.fit)
S3method(predictCV, gvf.fits.gr)
S3method(predictCV, gvf.fit.gr)

S3method(AIC, gvf.fits)
S3method(AIC, gvf.fit.gr)
S3method(AIC, gvf.fits.gr)

S3method(BIC, gvf.fits)
S3method(BIC, gvf.fit.gr)
S3method(BIC, gvf.fits.gr)

S3method(getR2, default)
S3method(getR2, gvf.fit)
S3method(getR2, gvf.fits)
S3method(getR2, gvf.fit.gr)
S3method(getR2, gvf.fits.gr)

S3method(getBest, default)
S3method(getBest, gvf.fit)
S3method(getBest, gvf.fits)
S3method(getBest, gvf.fit.gr)
S3method(getBest, gvf.fits.gr)

S3method(pop.desc, pop.totals)
S3method(pop.desc, spc.pop)

S3method(pop.plot, pop.totals)
S3method(pop.plot, spc.pop)
