
importFrom("graphics",
	"abline",
	"axis",
	"boxplot",
	"grid",
	"hist",
	"image",
	"legend",
	"lines",
	"locator",
	"par",
	"persp",
	"plot",
	"points",
	"rasterImage",
	"rect",
	"text",
	"title")

importFrom("stats",
	"anova",
	"approx",
	"as.formula",
	"dnorm",
	"qnorm",
	"rnorm",
	"rlnorm",
	"runif",
	"convolve",
	"kmeans",
	"lm",
	"loess",
	"median",
	"optim",
	"optimize",
	"p.adjust",
	"pchisq",
	"pf",
	"pt",
	"quantile",
	"relevel",
	"setNames",
	"smooth.spline",
	"splinefun",
	"supsmu")

importFrom("nlme",
	"lme")

importFrom("parallel",
	"nextRNGStream")

import("BiocGenerics")

import("BiocParallel")

import("Biobase")

importFrom("EBImage",
	"Image",
	"imageData",
	"imageData<-",
	"colorMode",
	"colorMode<-",
	"getFrame",
	"getFrames",
	"numberOfFrames")

import("matter")

import("methods")

import("stats4")

importFrom("Matrix",
	"t",
	"solve",
	"chol")

importFrom("dplyr",
	"as_tibble",
	"mutate",
	"select",
	"filter",
	"summarize",
	"summarise",
	"arrange",
	"group_by",
	"group_by_drop_default",
	"ungroup",
	"slice",
	"groups",
	"grouped_df",
	"collect")

importFrom("magrittr",
	"%>%")

import("S4Vectors")

import("ProtGenerics")

importFrom("grDevices",
	"as.raster",
	"col2rgb",
	"colorRamp",
	"dev.list",
	"hcl",
	"heat.colors",
	"rainbow",
	"rgb",
	"topo.colors",
	"trans3d")

importFrom("viridisLite",
	"viridis",
	"cividis",
	"magma",
	"inferno",
	"plasma")

importFrom("irlba",
	"irlba")

importFrom("lattice",
	"xyplot",
	"levelplot",
	"panel.abline",
	"panel.xyplot",
	"panel.levelplot",
	"simpleKey")

importFrom("mclust",
	"Mclust",
	"mclustBIC")

importFrom("signal",
	"interp1",
	"kaiser",
	"pchip",
	"sgolayfilt")

importFrom("sp",
	"coordinates",
	"coordinates<-",
	"coordnames",
	"coordnames<-",
	"gridded",
	"gridded<-",
	"point.in.polygon")

importFrom("utils",
	"capture.output",
	"flush.console",
	"object.size",
	"packageDescription",
	"packageVersion",
	"savehistory",
	"sessionInfo",
	"setTxtProgressBar",
	"txtProgressBar")

exportClasses(
	"Binmat",
	"Hashmat",
	"IAnnotatedDataFrame",
	"ImageData",
	"MIAPE-Imaging",
	"MSImageData",
	"MSImageProcess",
	"MSImageSet",
	"ResultSet",
	"SImageData",
	"SImageSet",
	"iSet")

export(
	"Binmat",
	"ImageData",
	"IAnnotatedDataFrame",
	"Hashmat",
	"MSImageData",
	"MSImageSet",
	"SImageData",
	"SImageSet")

exportClasses(
	"AnnotatedImage",
	"AnnotatedImageList",
	"AnnotatedImagingExperiment",
	"XDataFrame",
	"SummaryDataFrame",
	"PositionDataFrame",
	"MassDataFrame",
	"ImageList",
	"ImageArrayList",
	"SimpleImageList",
	"SimpleImageArrayList",
	"MSContinuousImagingSpectraList",
	"MSProcessedImagingSpectraList",
	"ImagingExperiment",
	"SparseImagingExperiment",
	"MSImagingExperiment",
	"MSContinuousImagingExperiment",
	"MSProcessedImagingExperiment",
	"MSImagingInfo")

export(
	"AnnotatedImage",
	"AnnotatedImageList",
	"AnnotatedImagingExperiment",
	"XDataFrame",
	"SummaryDataFrame",
	"PositionDataFrame",
	"MassDataFrame",
	"ImageList",
	"ImageArrayList",
	"MSContinuousImagingSpectraList",
	"MSProcessedImagingSpectraList",
	"SparseImagingExperiment",
	"MSImagingExperiment")

export(
	"addShape",
	"alpha.colors",
	"bw.colors",
	"col.map",
	"color.map",
	"darkmode",
	"discrete.colors",
	"divergent.colors",
	"generateImage",
	"generateSpectrum",
	"gradient.colors",
	"intensity.colors",
	"jet.colors",
	"lightmode",
	"risk.colors",
	"readAnalyze",
	"readImzML",
	"readMSIData",
	"presetImageDef",
	"setup.layout",
	"simulateImage",
	"simulateSpectrum",
	"writeAnalyze",
	"writeImzML",
	"writeMSIData")

S3method("print", "summary.iSet")
S3method("print", "summary.PCA")
S3method("print", "summary.PLS")
S3method("print", "summary.OPLS")
S3method("print", "summary.SpatialFastmap")
S3method("print", "summary.SpatialKMeans")
S3method("print", "summary.SpatialShrunkenCentroids")
S3method("print", "summary.CrossValidated")

S3method("print", "facet.boxplot")
S3method("print", "facet.bar")
S3method("print", "facet.hist")
S3method("print", "facet.plot")
S3method("print", "facet.image")
S3method("print", "facet.raster")

S3method("plot", "summary.PCA")
S3method("plot", "summary.PLS")
S3method("plot", "summary.OPLS")
S3method("plot", "summary.SpatialFastmap")
S3method("plot", "summary.SpatialKMeans")
S3method("plot", "summary.SpatialShrunkenCentroids")
S3method("plot", "summary.CrossValidated")

exportMethods(
	"as.array",
	"as.matrix",
	"as.data.frame",
	"length",
	"names",
	"names<-",
	"rownames",
	"rownames<-",
	"colnames",
	"colnames<-",
	"cbind",
	"rbind",
	"summary")

exportMethods(
	"image",
	"image3D",
	"plot")

exportMethods(
	"fitted",
	"predict",
	"residuals",
	"coef")

exportMethods("logLik")

exportMethods(
	"$",
	"$<-",
	"[",
	"[<-",
	"[[",
	"[[<-",
	"annotatedDataFrameFrom",
	"combine",
	"combiner",
	"combiner<-",
	"coord",
	"coord<-",
	"coordinates",
	"coordinates<-",
	"coordnames",
	"coordnames<-",
	"coordLabels",
	"coordLabels<-",
	"dim",
	"dim<-",
	"dims",
	"dimnames",
	"dimnames<-",
	"experimentData",
	"experimentData<-",
	"features",
	"fData",
	"fData<-",
	"featureData",
	"featureData<-",
	"featureNames",
	"featureNames<-",
	"fvarLabels",
	"fvarLabels<-",
	"fvarMetadata",
	"fvarMetadata<-",
	"gridded",
	"gridded<-",
	"height",
	"height<-",
	"iData",
	"iData<-",
	"imageData",
	"imageData<-",
	"intensityData",
	"intensityData<-",
	"initialize",
	"isCentroided",
	"is3D",
	"keys",
	"keys<-",
	"modelData",
	"modelData<-",
	"mz",
	"mz<-",
	"mzData",
	"mzData<-",
	"pData",
	"pData<-",
	"peaks",
	"peaks<-",
	"peakData",
	"peakData<-",
	"phenoData",
	"phenoData<-",
	"pixels",
	"pixelData",
	"pixelData<-",
	"pixelNames",
	"pixelNames<-",
	"positionArray",
	"positionArray<-",
	"processingData",
	"processingData<-",
	"protocolData",
	"protocolData<-",
	"regeneratePositions",
	"resultData",
	"resultData<-",
	"resultNames",
	"resultNames<-",
	"resolution",
	"resolution<-",
	"run",
	"run<-",
	"runNames",
	"runNames<-",
	"sampleNames",
	"sampleNames<-",
	"show",
	"showNames",
	"spectra",
	"spectra<-",
	"storageMode",
	"storageMode<-",
	"tolerance",
	"tolerance<-",
	"varLabels",
	"varLabels<-",
	"varMetadata",
	"varMetadata<-",
	"width",
	"width<-")

exportMethods(
	"abstract",
	"samples",
	"preproc",
	"preproc<-",
	"pubMedIds",
	"pubMedIds<-",
	"otherInfo",
	"expinfo",
	"notes",
	"notes<-",
	"embeddingMethod",
	"imageShape",
	"instrumentModel",
	"instrumentVendor",
	"inSituChemistry",
	"ionizationType",
	"lineScanDirection",
	"massAnalyzerType",
	"matrixApplication",
	"msiInfo",
	"pixelSize",
	"scanDirection",
	"scanPattern",
	"scanPolarity",
	"scanType",
	"softwareName",
	"softwareVersion",
	"specimenOrigin",
	"specimenType",
	"stainingMethod",
	"tissueThickness",
	"tissueWash")

exportMethods(
	"baselineReduction",
	"baselineReduction<-",
	"centroided",
	"centroided<-",
	"normalization",
	"normalization<-",
	"peakPicking",
	"peakPicking<-",
	"smoothing",
	"smoothing<-",
	"spectrumRepresentation",
	"spectrumRepresentation<-")

exportMethods(
	"crossValidate",
	"cvApply",
	"featureApply",
	"pixelApply",
	"spatialApply")

exportMethods(
	"findNeighbors",
	"spatialWeights")

exportMethods(
	"batchProcess",
	"process",
	"normalize",
	"smooth",
	"smoothSignal",
	"reduceBaseline",
	"mzAlign",
	"mzBin",
	"mzFilter",
	"peakPick",
	"peakAlign",
	"peakBin",
	"peakFilter",
	"reduceDimension",
	"standardizeRuns")

exportMethods("selectROI")

export("makeFactor")

export(
	"Cardinal.version",
	"Cardinal.history")

exportMethods(
	"colocalized",
	"coregister")

exportMethods(
	"PCA",
	"PLS",
	"OPLS",
	"spatialFastmap",
	"spatialKMeans",
	"spatialShrunkenCentroids",
	"spatialDGMM",
	"meansTest",
	"segmentationTest")

exportMethods(
	"topFeatures",
	"topLabels")

S3method("arrange", "DataFrame")
S3method("arrange", "XDataFrame")
S3method("arrange", "SummaryDataFrame")

S3method("filter", "DataFrame")
S3method("filter", "XDataFrame")
S3method("filter", "SummaryDataFrame")
S3method("filter", "SparseImagingExperiment")

S3method("group_by", "DataFrame")
S3method("group_by", "XDataFrame")

S3method("ungroup", "XDataFrame")

S3method("groups", "XDataFrame")

S3method("mutate", "DataFrame")
S3method("mutate", "XDataFrame")
S3method("mutate", "SummaryDataFrame")
S3method("mutate", "SparseImagingExperiment")

S3method("select", "DataFrame")
S3method("select", "XDataFrame")
S3method("select", "SummaryDataFrame")
S3method("select", "SparseImagingExperiment")

S3method("slice", "SparseImagingExperiment")

S3method("summarise", "DataFrame")
S3method("summarise", "XDataFrame")
S3method("summarise", "SummaryDataFrame")
S3method("summarise", "SparseImagingExperiment")
S3method("summarise", "MSImagingExperiment")

S3method("collect", "SparseImagingExperiment")
S3method("collect", "MSImagingExperiment")
S3method("collect", "MSProcessedImagingExperiment")

export(
	"mutate",
	"filter",
	"select",
	"summarize",
	"summarise",
	"arrange",
	"group_by",
	"ungroup",
	"slice",
	"groups",
	"collect")

export(
	"viridis",
	"cividis",
	"magma",
	"inferno",
	"plasma",
	"cividis")

export("%>%")

useDynLib("Cardinal", .registration=TRUE)
