import("gamlss.dist", except = c("Family"))
import("mboost")
importFrom("stabs", "stabsel", "subsample", "run_stabsel")
import("parallel")

importFrom("graphics", "axis", "box", "lines", "plot", "points")
importFrom("grDevices", "grey", "rgb")
importFrom("stats", "coef", "dlogis", "dnorm", "fitted", "median", "optimize",
           "plogis", "pnorm", "predict", "qlnorm", "qlogis", "qnorm", "qt",
           "qweibull", "rmultinom", "update", "var", "variable.names", "weighted.mean")
importFrom("utils", "tail")
importFrom("stats", "setNames")

export(glmboostLSS,
       gamboostLSS,
       blackboostLSS,
       mboostLSS,
       mboostLSS_fit,
       plot.glmboostLSS, plot.gamboostLSS,
       model.weights,
       PI, predint, plot.predint,
       predict.mboostLSS,
       make.grid, cvrisk.mboostLSS, cvrisk.nc_mboostLSS,
       plot.cvriskLSS, plot.nc_cvriskLSS, 
       selected, selected.mboostLSS, selected.stabsel_mboostLSS,
       stabsel.mboostLSS,
       Families,
       NBinomialLSS, NBinomialMu, NBinomialSigma,
       StudentTLSS, StudentTMu, StudentTSigma, StudentTDf,
       LogNormalLSS, LogNormalMu, LogNormalSigma,
       LogLogLSS, LogLogMu, LogLogSigma,
       GaussianLSS, GaussianMu, GaussianSigma,
       GammaLSS, GammaMu, GammaSigma,
       BetaLSS, BetaMu, BetaPhi,
       WeibullLSS, WeibullMu, WeibullSigma,
       ZIPoLSS, ZINBLSS,
       DirichletAlpha, DirichletLSS,
       gamlss.Families, as.families,
       gamlss1parMu,
       gamlss2parMu, gamlss2parSigma,
       gamlss3parMu, gamlss3parSigma, gamlss3parNu,
       gamlss4parMu, gamlss4parSigma, gamlss4parNu, gamlss4parTau,
       weighted.median, gamboostLSS_intern)

S3method("[", mboostLSS)
S3method(print, mboostLSS)
S3method(selected, mboostLSS)
S3method(risk, mboostLSS)
S3method(risk, nc_mboostLSS)
S3method(summary, mboostLSS)

S3method(mstop, oobag)
S3method(mstop, mboostLSS)

S3method(model.weights, default)
S3method(model.weights, mboostLSS)

S3method(cvrisk, mboostLSS)
S3method(cvrisk, nc_mboostLSS)
S3method(print, cvriskLSS)
S3method(plot, cvriskLSS)
S3method(plot, nc_cvriskLSS)
S3method(mstop, cvriskLSS)

S3method(stabsel, mboostLSS)
S3method(selected, stabsel_mboostLSS)

S3method(coef, mboostLSS)
S3method(coef, glmboostLSS)

S3method(plot, glmboostLSS)
S3method(plot, gamboostLSS)

S3method(plot, predint)

S3method(fitted, mboostLSS)
S3method(predict, mboostLSS)

S3method(update, mboostLSS)

S3method(get_qfun, mboostLSS)
S3method(get_qfun, character)
