useDynLib(BASiCS)
exportPattern("^[^\\Hidden]") 

import(SingleCellExperiment)
import(KernSmooth)
import(ggplot2)

importFrom(stats, acf)
importFrom(Rcpp, evalCpp)
importFrom(coda, HPDinterval, mcmc)
importFrom(methods, Summary, is, new, show, slotNames, .hasSlot)
importFrom(testthat, context, test_check)
importFrom(graphics, abline, barplot, legend, lines, par,
                     points, segments, smoothScatter, plot)
importFrom(data.table, fread)
importFrom(S4Vectors, metadata, DataFrame)
importFrom(SummarizedExperiment, assay, colData)
importFrom(stats, median, model.matrix, rgamma, rpois, runif, acf)
importFrom(utils, packageVersion, write.table)
importFrom(matrixStats, rowMeans2, colMeans2,
                        rowVars, colVars,
                        colMedians, rowMedians)
importFrom(grDevices, colorRampPalette)
importFrom(MASS, mvrnorm)

importMethodsFrom(BiocGenerics, counts, updateObject, subset,
                  colnames, rownames)
importMethodsFrom(scran, computeSumFactors)

exportClasses(BASiCS_Chain, BASiCS_Summary)

exportMethods(Summary, plot, displayChainBASiCS, displaySummaryBASiCS,
	            BASiCS_showFit)

export(BASiCS_Filter,
       newBASiCS_Data,
       newBASiCS_Chain,
       BASiCS_Sim,
       makeExampleBASiCS_Data,
       BASiCS_MCMC,
       BASiCS_LoadChain,
       BASiCS_VarianceDecomp,
       BASiCS_DetectHVG,
       BASiCS_DetectLVG,
       BASiCS_VarThresholdSearchHVG,
       BASiCS_VarThresholdSearchLVG,
       BASiCS_DenoisedRates,
       BASiCS_DenoisedCounts,
       BASiCS_TestDE)
