useDynLib(Biostrings)

import(methods)
import(stats)
import(utils) ## for the "head" and "tail" generics

exportClasses(
    IRanges, UnlockedIRanges, Views, LockedIRanges, NormalIRanges,
    MaskCollection,
    SparseList,
    XRaw, XInteger,
    XString, BString, DNAString, RNAString, AAString,
    MaskedXString, MaskedBString, MaskedDNAString, MaskedRNAString, MaskedAAString,
    XStringViews,
    XStringSet, BStringSet, DNAStringSet, RNAStringSet, AAStringSet,
    BStringList, DNAStringList, RNAStringList, AAStringList,
    XStringPartialMatches,
    XStringAlign,
    BOC_SubjectString, BOC2_SubjectString,
    ACtree, Dups, PDict, CWdna_PDict, TBdna_PDict,
    MIndex, ByPos_MIndex, ByName_MIndex
)

export(
    IRanges,
    intToRanges, intToAdjacentRanges, shift, restrict, narrow, reduce, toNormalIRanges, gaps,
    Mask, read.gapMask, read.agpMask, read.liftMask, read.rmMask, read.trfMask,
    readFASTA, writeFASTA, gregexpr2,
    IUPAC_CODE_MAP, mergeIUPACLetters,
    AMINO_ACID_CODE, GENETIC_CODE,
    DNA_ALPHABET, RNA_ALPHABET, AA_ALPHABET,
    #XRaw, XRaw.copy, XInteger, XInteger.read, XInteger.write,
    BString, DNAString, RNAString, AAString,
    BStringSet, DNAStringSet, RNAStringSet, AAStringSet,
    views, adjacentViews, trim, subviews,
    mask,
    FASTArecordsToCharacter, CharacterToFASTArecords,
    FASTArecordsToXStringViews, XStringSetToFASTArecords,
    read.XStringViews,
    read.BStringSet, read.DNAStringSet, read.RNAStringSet, read.AAStringSet,
    write.XStringSet, write.XStringViews,
    subXString, subviews,
    strrev, mkAllStrings, dinucleotideFrequency, trinucleotideFrequency,
    transcribe, cDNA, dna2rna, rna2dna,
    .inplaceReplaceLetterAtLoc,
    maxWeights, maxScore, PWMscore, matchPWM, countPWM,
    extractAllMatches,
    alignScore,

    ## Aliases
    desc, "desc<-",

    ## Deprecated
    subBString,
    FASTArecordsToBStringViews,
    read.BStringViews, write.BStringViews,

    ## Defunct
    matchDNAPattern
)

exportMethods(
    ## Generics defined elsewhere
    #as.integer,
    initialize, length, names, "[", "[[", show, "==", "!=", duplicated,
    coerce, as.data.frame, as.matrix, as.list,
    as.character, toString, as.complex, toComplex,
    nchar, update,

    ## IRanges objects
    start, width, end, isNormal, whichFirstNotNormal, isEmpty, max, min,
    "start<-", "width<-", "end<-",

    ## MaskCollection objects
    nir_list, active, "active<-", maskedwidth, maskedratio, append,

    ## SparseList objects
    ls,

    ## XString, XStringViews, XStringList and MaskedXString objects
    XString, alphabet, subseq,
    XStringViews, subject,
    BStringList, DNAStringList, RNAStringList, AAStringList,
    unmasked, masks, "masks<-",

    ## Utilities
    letter,
    substr, substring,
    alphabetFrequency, oligonucleotideFrequency,
    chartr,
    reverse, complement, reverseComplement,
    replaceLetterAtLoc,
    maskMotif,
    injectHardMask,

    ## Others
    nmismatchStartingAt, nmismatchEndingAt,
    isMatching, mismatch, coverage,
    matchPattern, countPattern,
    vcountPattern,
    matchLRPatterns,
    matchProbePair,
    findPalindromes,
    palindromeArmLength, palindromeLeftArm, palindromeRightArm,
    findComplementedPalindromes,
    complementedPalindromeArmLength, complementedPalindromeLeftArm, complementedPalindromeRightArm,

    patternFrequency, head, tail, startIndex, endIndex, countIndex, unlist,
    PDict, matchPDict, countPDict,

    subpatterns, pattern,
    align1, align2, type, score,
    consmat,
    lcprefix, lcsuffix, pmatchPattern, lcsubstr,
    pairwiseAlignment, needwunsQS,

    ## Deprecated
    first, last,
    BStringViews
)

