############################################################
# Import required packages
############################################################

import(methods)     # for methods used in defining S4 classes
import(IRISSeismic)
import(stringr)
import(pracma)
if(utils::packageVersion("dplyr") >= "0.5.0"){
  importFrom(dplyr,everything)
}

############################################################
# Export S4 classes 
############################################################
  
# NOTE:  If we weren't exporting classes and methods explicitly
# NOTE:  we would use an exportPattern like this:
#
# exportPattern("^[a-zA-Z]") # all objects that begin with a letter

exportClasses(
  "MultipleTimeValueMetric",
  "GeneralValueMetric",
  "SingleValueMetric",
  "SpectrumMetric"
)

############################################################
# Export class methods 
############################################################

# additional method for IrisClient
exportMethods(
  "createBssUrl",
  "getBssMetricList",
  "getMetricsXml",
  "getSingleValueMetrics",
  "getGeneralValueMetrics",
  "getPsdMetrics"
)

############################################################
# Register generic S3 methods with new S4 classes
############################################################


############################################################
# Export functions that are not class methods
############################################################

# from Class-Metric
export("metricList2DF")
export("metricList2DFList")
export("metricList2Xml")
export("spectrumMetric2Xml")
export("timesMetric2Xml")
# from BSSUtils
export("saveMetricList")
export("convertBssErrors")
export("getMustangMetrics")
# from ISPAQUtils
export("getMetricFunctionMetadata")
# from metrics
export("basicStatsMetric")
export("crossCorrelationMetric")
export("correlationMetric")
export("dailyDCOffsetMetric")
export("DCOffsetTimesMetric")
export("gapsMetric")
export("PSDMetric")
export("SNRMetric")
export("spikesMetric")
export("STALTAMetric")
export("stateOfHealthMetric")
export("transferFunctionMetric")
export("upDownTimesMetric")
export("maxRangeMetric")
export("sampleRateChannelMetric")
export("sampleRateRespMetric")
