import(graphics)
import(grDevices)
import(stats)
import(utils)
import(segmented)
import(foreach)
import(doSNOW)
import(parallel)
importFrom("methods", "as", "getClass", "new")
importFrom(stats,dexp)
importFrom(stats,pexp)
importFrom(stats,qexp)
importFrom(stats,rexp)
importFrom(stats,runif)
import(survival)
import(fastmatch)

export(simdata)
export(sim_followup)
export(cut_dat)
export(rpwexpm)
export(rpwexpm_conditional)
export(ppwexpm)
export(ppwexpm_conditional)
export(dpwexpm)
export(qpwexpm)
export(qpwexpm_conditional)

# main functions
export(pwexpm_fit)
export(pwexpm)
#export(AIC)
#export(BIC)
#export(logLik)
#export(coef)
#export(confint)
export(boot.pwexpm_fit)
export(boot.pwexpm)
export(cv.pwexpm_fit)
export(cv.pwexpm)
export(predict.pwexpm)
export(predict.boot.pwexpm)

export(plot_survival)
export(plot_event)

# function default method
S3method(plot_survival, default)
S3method(boot.pwexpm, default)
S3method(cv.pwexpm, default)
S3method(plot_event, default)

# methods for sim_followup
S3method(print, sim_followup)

# methods for pwexmp
S3method(summary, pwexpm)
S3method(print, summary.pwexpm)
S3method(coef, pwexpm)
S3method(boot.pwexpm, pwexpm)
S3method(cv.pwexpm, pwexpm)
S3method(print, pwexpm)
S3method(AIC, pwexpm)
S3method(BIC, pwexpm)
S3method(logLik, pwexpm)
S3method(plot, pwexpm)
S3method(plot_survival, pwexpm)
S3method(predict, pwexpm)

# methods for boot.pwexpm
S3method(summary, boot.pwexpm)
S3method(print, summary.boot.pwexpm)
S3method(confint, boot.pwexpm)
S3method(predict, boot.pwexpm)
S3method(print, boot.pwexpm)
S3method(plot, boot.pwexpm)
S3method(plot_survival, boot.pwexpm)

# methods for cv.pwexpm
S3method(plot, cv.pwexpm)
S3method(print, cv.pwexpm)

# methods for predict.pwexpm/predict.boot.pwexpm
S3method(summary, predict.pwexpm)
S3method(print, summary.predict.pwexpm)
S3method(summary, predict.boot.pwexpm)
S3method(print, summary.predict.boot.pwexpm)
S3method(plot, predict.pwexpm)
S3method(print, predict.pwexpm)
S3method(plot_event, predict.pwexpm)
S3method(plot, predict.boot.pwexpm)
S3method(print, predict.boot.pwexpm)
S3method(plot_event, predict.boot.pwexpm)



