useDynLib(fastsae, .registration = TRUE)

export(autoplot)
export(check_numpyro_available)
export(inla_engine)
export(jax_engine)
export(eblup_bhf)
export(eblup_fh)
export(eblup_sfh)
export(eblup_stfh)
export(eblup_twofold)
export(hb_area)
export(hb_unit)
export(hb_twofold)
export(sim_spatial_weights)
export(setup_numpyro_env)
export(sim_area_data)
export(sim_series_data)
export(diagnose)
export(benchmark_sae)
export(compare_sae)
export(export_sae)
export(add_reliability_flags)
export(map_sae)
export(gvf_smooth)
export(create_weights)
export(spatial_test)

S3method(print, gvf_smooth)
S3method(summary, gvf_smooth)
S3method(plot, gvf_smooth)
S3method(print, fastsae_weights)
S3method(print, fastsae_engine)
S3method(summary, fastsae_weights)
S3method(plot, fastsae_weights)
S3method(print, fastsae_spatial_test)

S3method(benchmark_sae, fastsae)
S3method(benchmark_sae, default)
S3method(autoplot, fastsae_benchmark)
S3method(plot, fastsae_benchmark)
S3method(print, fastsae_benchmark)
S3method(summary, fastsae_benchmark)
S3method(compare_sae, default)
S3method(print, fastsae_comparison)
S3method(summary, fastsae_comparison)
S3method(autoplot, fastsae_comparison)
S3method(plot, fastsae_comparison)
S3method(map_sae, fastsae)
S3method(map_sae, fastsae_benchmark)
S3method(map_sae, list)
S3method(map_sae, default)
S3method(autoplot, fastsae)
S3method(autoplot, fastsae_diagnose)
S3method(autoplot, list)
S3method(plot, fastsae)
S3method(print, fastsae)
S3method(print, fastsae_diagnose)
S3method(print, fastsae_sim_data)
S3method(print, fastsae_sim_series)
S3method(summary, fastsae)
S3method(print, summary.fastsae)
S3method(coef, fastsae)
S3method(fitted, fastsae)
S3method(residuals, fastsae)

importFrom(Rcpp, evalCpp)
importFrom(rlang, .data)
importFrom(stats, rnorm)
importFrom(utils, head)
importFrom(ggplot2, ggplot, aes, geom_point, geom_line, geom_ribbon,
           facet_wrap, labs, theme_minimal, theme, element_text,
           scale_color_brewer, geom_bar, geom_errorbar, geom_hline,
           geom_vline, position_dodge, expand_limits, geom_abline,
           scale_fill_brewer, autoplot, geom_smooth, scale_color_gradient)
importFrom(methods, is)
importFrom(Matrix, Matrix, Diagonal)

