useDynLib(kedd, .registration = TRUE)
importFrom(Rcpp, evalCpp)
importFrom(methods, new, is, isVirtualClass, setClass, setValidity,
           setGeneric, setMethod, show, validObject, slot, slotNames)
importFrom(stats,  optimize, sd, var)
importFrom(graphics, plot, lines, legend, curve)
importFrom(ggplot2, ggplot, aes, geom_line, geom_point, geom_vline,
           geom_hline, geom_ribbon, geom_rug, annotate,
           ggtitle, xlab, ylab, scale_x_log10,
           theme_minimal, theme, element_text, element_rect, margin)
importFrom(tools, toTitleCase)
importFrom(utils, globalVariables)

## S4 classes
exportClasses(bandwidth, dkde, kfun, kconv)

## Generics
exportMethods(show, plot, lines, "$")

## Bandwidth selectors
export(h.ucv, h.bcv, h.ccv, h.mcv, h.tcv, h.amise, h.mlcv, h.scv)

## Kernel evaluators
export(kernel.fun, kernel.conv, kernel.pow)

## KDE
export(dkde)

## Low-level Rcpp exports (advanced use)
export(Cpp_hos,
       Cpp_kernel_deriv,
       Cpp_kernel_conv,
       Cpp_h_ucv,
       Cpp_h_bcv_1,
       Cpp_h_bcv_2,
       Cpp_h_ccv,
       Cpp_h_mcv,
       Cpp_h_tcv,
       Cpp_h_scv,
       Cpp_plot_cv,
       Cpp_conv2conv,
       Cpp_kernel_constants,
       Cpp_omp_threads)
