import("partykit")
import("gamlss.dist")
import("stats")
import("Formula")

importFrom("graphics",
  "plot",
  "hist",
  "lines"
)
importFrom("sandwich",
  "bread",
  "estfun"
)
importFrom("utils", 
  "data", 
  "getAnywhere",
  "combn"
)
importFrom("survival",
  "Surv",
  "is.Surv"
)
importFrom("utils", 
  "setTxtProgressBar", 
  "txtProgressBar"
)

export(
  ## core distribution fitting function
  "distfit",
  "distfamily",

  ## distributional tree
  "disttree",

  ## control function for 'disttree'
  "disttree_control",

  ## distributional forest
  "distforest",

  ## family list generating functions used in distfit, disttree
  "distfamily",

  ## family list generating functions
  "dist_gaussian",
  "dist_weibull",
  "dist_poisson",
  "dist_exponential",
  "dist_gamma",
  "dist_crch",
  "dist_ztnbinom",
  "dist_binomial",


  ## complete family lists
  "dist_list_normal",
  "dist_list_cens_normal",
  "dist_list_trunc_normal",
  "dist_list_hurdle_normal",
  
  ## additional summary function
  "getSummary.distfit"
)

## methods
S3method("bread", "distfit")
S3method("coef", "distfit")
S3method("confint", "distfit")
S3method("estfun", "distfit")
S3method("logLik", "distfit")
S3method("nobs", "distfit")
S3method("vcov", "distfit")
S3method("predict", "distfit")
S3method("print", "distfit")
S3method("residuals", "distfit")
S3method("summary", "distfit")
S3method("print", "summary.distfit")
S3method("plot", "distfit") # FIXME

S3method("print", "disttree")
S3method("coef", "disttree")
S3method("predict", "disttree")
S3method("logLik", "disttree")
S3method("fitted", "disttree")

S3method("predict", "distforest")
S3method("logLik", "distforest")
S3method("varimp", "distforest")
S3method("model.frame", "distforest")
S3method("gettree", "distforest")

