import(methods)
import(slam)

export(
       "activateCluster",
       "Corpus", # alias to VCorpus
       "CSVSource", # defunct
       "DataframeSource",
       "deactivateCluster",
       "Dictionary",
       "DirSource",
       "dissimilarity",
       "Docs",
       "DocumentTermMatrix",
       "stemCompletion",
       "GmaneSource",
#      "FCorpus",
       "findAssocs",
       "findFreqTerms",
       "getFilters",
       "getReaders",
       "getSources",
       "getTransformations",
       "inspect",
       "makeChunks",
       "materialize",
       "nDocs",
       "nTerms",
       "readPlain",
       "readReut21578XML",
       "readReut21578XMLasPlain",
       "readRCV1",
       "readNewsgroup",
       "readGmane",
       "readPDF",
       "readTabular",
       "readHTML",
       "readDOC",
       "readXML",
       "removeSparseTerms",
       "ReutersSource",
       "convertReut21578XMLPlain",
       "convertRCV1Plain",
       "convertMboxEml",
       "sFilter",
       "PCorpus",
       "prescindMeta",
       "preprocessReut21578XML",
       "VCorpus",
       "stopwords",
       "TermDocMatrix", # defunct
       "TermDocumentMatrix",
       "termFreq",
       "Terms",
       "tmReduce",
       "URISource",
       "VectorSource",
       "weightTf",
       "weightTfIdf",
       "weightBin",
       "XMLSource")

S3method("Dictionary", "character")

# S3method("inspect", "FCorpus")
# S3method("TermDocumentMatrix", "FCorpus")

# S3method("print", "MinimalDocument")

S3method("inspect", "VCorpus")
S3method("TermDocumentMatrix", "VCorpus")

S3method("findAssocs", "matrix")

S3method("inspect", "PCorpus")
S3method("TermDocumentMatrix", "PCorpus")

S3method("dissimilarity", "PlainTextDocument")

S3method("[", "DocumentTermMatrix")
S3method("Dictionary", "DocumentTermMatrix")
S3method("dissimilarity", "DocumentTermMatrix")
S3method("findAssocs", "DocumentTermMatrix")
S3method("inspect", "DocumentTermMatrix")
S3method("plot", "DocumentTermMatrix")
S3method("print", "DocumentTermMatrix")
S3method("t", "DocumentTermMatrix")

S3method("[", "TermDocumentMatrix")
S3method("Dictionary", "TermDocumentMatrix")
S3method("dissimilarity", "TermDocumentMatrix")
S3method("findAssocs", "TermDocumentMatrix")
S3method("inspect", "TermDocumentMatrix")
S3method("plot", "TermDocumentMatrix")
S3method("print", "TermDocumentMatrix")
S3method("t", "TermDocumentMatrix")

exportMethods(
              # Constructors
              "TextRepository",
              "FunctionGenerator",
              "WeightFunction",

              # TextDocument
              "Content",
              "Content<-",
              "Author",
              "Author<-",
              "DateTimeStamp",
              "DateTimeStamp<-",
              "Description",
              "Description<-",
              "ID",
              "ID<-",
              "Origin",
              "Origin<-",
              "Heading",
              "Heading<-",
              "Language",
              "Language<-",
              "LocalMetaData",

              "meta",
              "meta<-",
              "DublinCore",
              "DublinCore<-",

              # Corpus
              "DMetaData",
              "DMetaData<-",
              "CMetaData",
              "DBControl",

              # TextRepository
              "RepoMetaData",

              # Sources
              "stepNext",
              "getElem",
              "pGetElem",
              "eoi",

              # Functions
              "tmMap",
              "asPlain",
              "stripWhitespace",
              "tmTolower",
              "stemDoc",
              "removeCitation",
              "removeNumbers",
              "removeMultipart",
              "removeSignature",
              "removeWords",
              "removePunctuation",
              "replacePatterns",
              "tmFilter",
              "tmIndex",
              "searchFullText",
              "tmIntersect",

              "appendElem",
              "[",
              "[<-",
              "[[",
              "[[<-",
              "c",
              "coerce", # for setAs
              "show",
              "summary",
              "writeCorpus",
              "%IN%")

exportClasses("TextDocument",
              "PlainTextDocument",
              "XMLTextDocument",
              "Reuters21578Document",
              "RCV1Document",
              "NewsgroupDocument",
              "StructuredTextDocument",
              "Corpus",
              "MetaDataNode",
              "TextRepository",
              "Dictionary",
              "Source",
              "DataframeSource",
              "DirSource",
              "VectorSource",
              "URISource",
              "FunctionGenerator",
              "PCorpus",
              "VCorpus",
              "WeightFunction",
              "XMLSource")

useDynLib("tm")
