# Hand-written NAMESPACE (the package documentation is in hand-written .Rd
# files, not roxygen2). Edit this file directly when adding exports.

useDynLib(CIMEHR, .registration = TRUE)

importFrom(Rcpp, sourceCpp)
importFrom(stats, coef, confint, optim, predict, setNames, vcov)
importFrom(utils, modifyList, object.size, tail)

## Main CIMEHR estimators
export(CIMEHR, CIMEHR_HL, CIMEHR_spline, CIMEHR_spline_HL)

## Common interface and method registry
export(fit_method, method_comparisons, available_comparison_methods,
       cimehr_methods)

## Comparison methods (with long-form aliases)
export(Summary_stat,
       LMM, Linear_mixed_model,
       Lin_Ying,
       Liang, Joint_modeling_visiting_and_longitudinal_Liang,
       Pairwise_likelihood,
       JMVL_G,
       IIRR, Inverse_intensity_rate_ratio_weighting,
       IIRR_balancing, Inverse_intensity_rate_ratio_balancing,
       Multiple_imputation_IP,
       Linear_increment_IP,
       EHRJoint)

## Stage summaries and coefficients
export(summary_outcome, summary_visiting, summary_observation,
       coef_stage, extract_coefficient)

## Fitted mean curves
export(meanfit, baseline_mean, population_trajectory)

## S3 methods for fitted models
S3method(print, cimehr_fit)
S3method(summary, cimehr_fit)
S3method(coef, cimehr_fit)
S3method(vcov, cimehr_fit)
S3method(confint, cimehr_fit)
S3method(predict, cimehr_fit)
S3method(predict, cimehr_spline_fit)
S3method(plot, cimehr_fit)
S3method(meanfit, cimehr_fit)

## S3 methods for fitted mean curves
S3method(print, cimehr_meanfit)
S3method(summary, cimehr_meanfit)
S3method(plot, cimehr_meanfit)
S3method(as.data.frame, cimehr_meanfit)
