useDynLib("dbscan", .registration = TRUE)
import("Rcpp")
importFrom("graphics", "plot", "points", "par", "segments",
  "lines", "polygon", "text", "abline")
importFrom("grDevices", "palette", "chull", "adjustcolor")
importFrom("stats", "dist", "hclust", "dendrapply", "as.dendrogram",
  "is.leaf", "prcomp")
importFrom("utils", "tail")


export(
  kNN,
  kNNdistplot,
  kNNdist,
  frNN,
  sNN,
  adjacencylist,

  dbscan,
  is.corepoint,

  optics,
  extractDBSCAN,
  extractXi,

  hdbscan,
  extractFOSC,
  as.reachability,
  coredist,
  mrdist,

  sNNclust,

  jpclust,

  lof,
  glosh,
  pointdensity,

  hullplot,

  comps
)

S3method(print, dbscan_fast)
S3method(predict, dbscan_fast)

S3method(print, optics)
S3method(plot, optics)
S3method(predict, optics)
S3method(as.dendrogram, optics)
S3method(as.reachability, optics)

S3method(print, hdbscan)
S3method(plot, hdbscan)
S3method(predict, hdbscan)

S3method(as.reachability, dendrogram)

S3method(print, reachability)
S3method(plot, reachability)
S3method(as.dendrogram, reachability)

S3method(adjacencylist, kNN)
S3method(sort, kNN)
S3method(print, kNN)

S3method(adjacencylist, frNN)
S3method(sort, frNN)
S3method(print, frNN)

S3method(sort, sNN)
S3method(print, sNN)

S3method(plot, NN)

S3method(comps, dist)
S3method(comps, kNN)
S3method(comps, sNN)
S3method(comps, frNN)
