useDynLib(gmapR, .registration = TRUE)

importFrom(Rsamtools, path, bamPaths, "bamWhich<-", BamFile, BamFileList,
           BamSampler)
importFrom(tools, file_path_as_absolute, file_ext, file_path_sans_ext,
           list_files_with_exts)
importFrom(Biobase, createPackage)
import(IRanges)
import(S4Vectors)
import(methods)
import(GenomicRanges)
import(GenomeInfoDb)
import(BiocParallel)
importMethodsFrom(GenomeInfoDb, genome)
importFrom(utils, packageVersion)
importFrom(Biostrings, getSeq, readDNAStringSet, DNAStringSet)
importMethodsFrom(GenomicRanges, seqnames, strand)
importMethodsFrom(Rsamtools, asBam)
importClassesFrom(GenomicFeatures, TxDb)
importFrom(GenomicFeatures, transcripts, exons, exonsBy)
importClassesFrom(rtracklayer, RTLFile, FastaFile, RTLFileList)
importFrom(rtracklayer, "referenceSequence<-", import, export, FastaFile,
           FileForFormat)
importMethodsFrom(rtracklayer, export)
importFrom(VariantAnnotation, readVcf, ScanVcfParam, fixed, VRanges, ref, alt,
           "ref<-", "alt<-", altDepth, refDepth, "vcfWhich<-")
importClassesFrom(VariantAnnotation, "VCF", "VRanges")
importFrom(BSgenome, getSeq, providerVersion)
importFrom(GenomicAlignments, readGAlignments)
importMethodsFrom(GenomicAlignments, qwidth)

## public API

export(bam_tally, GmapGenome, GmapGenomeDirectory, GsnapParam,
       directory, BamTallyParam, makeGmapGenomePackage, GsnapOutput,
       GmapSnps, GmapSnpDirectory, TP53Genome, TP53Which, variantSummary,
       GmapParam)

exportClasses(GmapGenome, GmapGenomeDirectory, GmapSnpDirectory,
              GsnapOutput, GmapSnps, BamTallyParam, GsnapParam, GmapParam,
              GmapAlignerParam)

exportMethods(bamPaths, path, genome, seqinfo, gsnap, "snps<-",
              "spliceSites<-", getSeq, gmap)

S3method(as.list, GmapAlignerParam)