useDynLib(FlexER)
import(stats)
import(graphics)
import(MASS)
import(mgcv)
import(Matrix)
import(foreign)
import(RcppEigen)
import(Rcpp)


importFrom(splines, splineDesign)
importFrom(colorspace, diverge_hcl)
importFrom(grDevices, rgb)

export(flexer,
       match_flexer_control,
       match_classic_ER_control,
       match_fixed_er_control,
       plot.flexer,
       predict.flexer,
       predict_terms_response.flexer,
       predict_terms_response,
       print.flexer,
       summary.flexer,
       deviance.flexer,
       residuals.flexer,
       resid.flexer,
       fitted.flexer,
       fitted.values.flexer,
       coefficients.flexer,
       coef.flexer,
       response.flexer,
       response,
       classic_ER,
       deviance.classic_er,
       plot.classic_er,
       predict.classic_er,
       build_split_list,
       expectile,
       calc_Boot.flexer,
       plot_Boot.flexer,
       calc_Boot,
       plot_Boot,
       plot_iter_res.flexer,
       plot_iter_cov.flexer,
       plot_iter_goodness.flexer,
       plot_iter_res,
       plot_iter_cov,
       plot_iter_goodness,
       plot_join_classic_ER,
       plot_join_flexer,
       fixed_er,
       deviance.fixed_er,
       plot.fixed_er,
       predict.fixed_er
       )

exportClasses("flexer")
exportClasses("classic_er")
exportClasses("fixed_er")

S3method(calc_Boot, flexer)
S3method(coef, flexer)
S3method(coefficients, flexer)
S3method(deviance, flexer)
S3method(fitted, flexer)
S3method(fitted.values, flexer)
S3method(plot, flexer)
S3method(plot_Boot, flexer)
S3method(plot_iter_cov, flexer)
S3method(plot_iter_res, flexer)
S3method(plot_iter_goodness, flexer)
S3method(predict, flexer)
S3method(predict_terms_response, flexer)
S3method(print, flexer)
S3method(summary, flexer)
S3method(residuals, flexer)
S3method(resid, flexer)
S3method(response, flexer)

S3method(deviance, classic_er)
S3method(plot, classic_er)
S3method(predict, classic_er)
S3method(deviance, fixed_er)
S3method(plot, fixed_er)
S3method(predict, fixed_er)

