useDynLib(hisse, .registration = TRUE)

export(hisse, hisse.null4, MarginRecon, MarginReconGeoSSE, SupportRegion, TransMatMaker, ParDrop, ParEqual, BisseToHisse, plot.hisse.states, SimulateHisse, SimToPhylo, GetModelAveRates, GetModelAveEqFreqs, GeoHiSSE, TransMatMakerGeoHiSSE, SimulateGeoHiSSE, TranslateParsMakerGeoHiSSE, plot.geohisse.states, SupportRegionGeoSSE, GetModelWeight)
import(ape, deSolve, GenSA, subplex, nloptr)
importFrom(data.table, data.table, setkey)
importFrom(parallel, mclapply)
importFrom(phytools, plot.contMap, nodeHeights, fastAnc, anc.ML)
importFrom("grDevices", "colorRampPalette", "nclass.Sturges", "rainbow")
importFrom("graphics", "hist", "par", "plot", "rect", "segments", "text")
importFrom("methods", "hasArg")
importFrom("utils", "capture.output")
importFrom("stats", "dbeta", "density", "quantile", "reorder", "rexp", "runif", "weighted.mean", "rbinom")
importFrom("diversitree", "tree.classe")
importFrom("stats", "setNames")

exportClasses('hisse.fit', 'hisse.null4.fit', 'geohisse.fit', 'hisse.states', 'hisse.support', 'geohisse.support', 'hisse.geosse.states')
S3method(print, hisse.fit)
S3method(print, hisse.null4.fit)
S3method(print, hisse.states)
S3method(print, hisse.geosse.states)
S3method(print, hisse.support)
S3method(print, geohisse.fit)
S3method(print, geohisse.support)
S3method(plot, hisse.states)
S3method(plot, geohisse.states) 
