useDynLib(biovizBase, .registration=TRUE)

## ======================================================================
## Import
## ======================================================================

import(methods)
import(BiocGenerics)

### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
### base packages
###

importFrom(grDevices, colorRampPalette)
importFrom(graphics, par, plot, rect, text)
importFrom(stats, approx, as.formula, asOneSidedFormula, setNames)
importFrom(utils, menu)

### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
### Non-bioconductor packages
###

importFrom(RColorBrewer, brewer.pal)
importFrom(scales, dichromat_pal, dscale, expand_range, rescale)
importFrom(Hmisc, bezier)
importFrom(dichromat, colorschemes)

### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
### Bioconductor packages
###

## IRanges
importFrom(IRanges, IRanges, seqapply, breakInChunks)
importMethodsFrom(IRanges, split, sort, as.factor,
                  unlist, restrict,
                  as.data.frame, as.matrix,
                  length,
                  "[","[<-","[[", "[[<-","$",
                  "%in%", show,
                  countOverlaps, disjointBins, elementLengths, end, endoapply,
                  findOverlaps, gaps, metadata, "metadata<-", pgap, punion,
                  ranges, reduce, resize, shift, start, "start<-",
                  subsetByOverlaps, togroup, values, "values<-", width, stack)
importClassesFrom(IRanges, IRanges)

## GenomicRanges
importFrom(GenomicRanges, keepSeqlevels, GRanges)
importMethodsFrom(GenomicRanges, genome, grglist, seqinfo, seqlengths,
                  "seqlengths<-", seqlevels, seqlevels0, "seqlevels<-", seqnames,
                  ranges, "ranges<-", start, end,
                  width, "start<-", "end<-", "width<-",
                  strand, show, "elementMetadata<-", elementMetadata,
                  as.data.frame, seqnameStyle, "seqnameStyle<-")
importClassesFrom(GenomicRanges, GRanges, GRangesList, GenomicRanges)

## Biostrings
importFrom(Biostrings, AA_ALPHABET, DNA_ALPHABET, RNA_ALPHABET,
           IUPAC_CODE_MAP, AMINO_ACID_CODE)
importMethodsFrom(Biostrings, getSeq, letterFrequency,
                  letterFrequencyInSlidingView)

## Rsamtools
importClassesFrom(Rsamtools, BamFile)
importFrom(Rsamtools, index, scanBamFlag, PileupFiles, PileupParam)
importMethodsFrom(Rsamtools, ScanBamParam, applyPileups, scanBam)

## GenomicAlignments
importFrom(GenomicAlignments, cigar, readGAlignmentsFromBam)
importClassesFrom(GenomicAlignments, GAlignments)

## GenomicFeatures
importClassesFrom(GenomicFeatures,TranscriptDb)
importMethodsFrom(GenomicFeatures, transcripts, cdsBy, cdsByOverlaps, exonsBy,
                  exonsByOverlaps, isActiveSeq, "isActiveSeq<-", transcripts,
                  transcriptsByOverlaps)

## AnnotationDbi
importFrom(AnnotationDbi, unlist2)

## VariantAnnotation
importClassesFrom(VariantAnnotation, VRanges)

## ======================================================================
##    export
## ======================================================================
## color
export(getBioColor,
       plotColorLegend,
       genBrewerBlindPalInfo,
       genDichromatPalInfo,
       genBlindPalInfo,
       colorBlindSafePal,
       blind.pal.info,
       brewer.pal.blind.info,
       dichromat.pal.blind.info,
       estimateCoverage)



## transform
export(transformToCircle,
       transformToRectInCircle,
       transformToBarInCircle,
       transformToSegInCircle,
       transformToLinkInCircle,
       transformDfToGr,
       transformGRangesForEvenSpace)
exportMethods(transformToGenome,transformToDf)

## utils
exportMethods(addStepping, 
              shrinkageFun,
              maxGap, 
              splitByFacets,
              getGaps,
              getXScale,
              getYLab,
              getXLab,
              crunch, 
	      mold)

export(isIdeogram, isSimpleIdeogram, getIdeogram, containLetters,
       pileupAsGRanges, pileupGRangesAsVariantTable, GCcontent,
       showColor, isJunctionRead, isMatchedWithModel,
       flatGrl, getIdeoGR, getScale, getFormalNames, subsetArgsByFormals,
       parseArgsForAes, parseArgsForNonAes, strip_formula_dots,
       is_coord_truncate_gaps, is_coord_genome)


## exportPattern("^[^\\.]")
