export(
  "gs",
  "iamb",
  "inter.iamb",
  "fast.iamb",
  "mmpc",
  "si.hiton.pc",
  "chow.liu",
  "aracne",
  "hc",
  "tabu",
  "rsmax2",
  "mmhc",
  "learn.mb",
  "learn.nbr",
  "naive.bayes",
  "tree.bayes",
  "compare",
  "hamming",
  "shd",
  "mb",
  "nbr",
  "arcs",
  "arcs<-",
  "directed.arcs",
  "undirected.arcs",
  "incoming.arcs",
  "outgoing.arcs",
  "incident.arcs",
  "compelled.arcs",
  "reversible.arcs",
  "narcs",
  "parents",
  "parents<-",
  "children",
  "children<-",
  "root.nodes",
  "leaf.nodes",
  "nnodes",
  "in.degree",
  "out.degree",
  "amat",
  "amat<-",
  "nparams",
  "ntests",
  "whitelist",
  "blacklist",
  "modelstring",
  "modelstring<-",
  "model2network",
  "set.arc",
  "drop.arc",
  "reverse.arc",
  "set.edge",
  "drop.edge",
  "choose.direction",
  "arc.strength",
  "boot.strength",
  "custom.strength",
  "averaged.network",
  "rbn",
  "score",
  "ci.test",
  "as.bn",
  "as.bn.fit",
  "as.grain",
  "as.graphNEL",
  "as.graphAM",
  "acyclic",
  "directed",
  "path",
  "node.ordering",
  "subgraph",
  "skeleton",
  "pdag2dag",
  "ordering2blacklist",
  "tiers2blacklist",
  "empty.graph",
  "random.graph",
  "bn.boot",
  "bn.cv",
  "graphviz.plot",
  "strength.plot",
  "bn.fit",
  "custom.fit",
  "bn.fit.qqplot",
  "bn.fit.histogram",
  "bn.fit.xyplot",
  "bn.fit.barchart",
  "bn.fit.dotplot",
  "bn.net",
  "sigma",
  "cpquery",
  "cpdist",
  "cpdag",
  "cextend",
  "vstructs",
  "moral",
  "mutilated",
  "dsep",
  "discretize",
  "dedup",
  "configs",
  "relevant",
  "bn.var",
  "bn.moments",
  "read.bif",
  "write.bif",
  "read.dsc",
  "write.dsc",
  "read.net",
  "write.net",
  "write.dot",
  "test.counter",
  "increment.test.counter",
  "reset.test.counter"
)

useDynLib(bnlearn)

importFrom(methods, setClass, setGeneric, setMethod)
importFrom(stats, logLik, AIC, BIC)

S3method(as.bn, fit)

S3method(all.equal, bn)
S3method(print, bn)
S3method(plot, bn)
S3method(AIC, bn)
S3method(AIC, bn.fit)
S3method(BIC, bn)
S3method(BIC, bn.fit)
S3method(logLik, bn)
S3method(logLik, bn.fit)
S3method(rbn, bn)
S3method(rbn, bn.fit)
S3method(rbn, default)
S3method(as.bn, character)
S3method(as.character, bn)
S3method(as.grain, bn.fit)
S3method(as.bn, grain)
S3method(as.bn.fit, grain)
S3method(as.graphNEL, bn)
S3method(as.bn, graphNEL)
S3method(as.graphNEL, bn.fit)
S3method(as.graphAM, bn)
S3method(as.bn, graphAM)
S3method(as.graphAM, bn.fit)
S3method(print, "bn.fit")
S3method(print, "bn.fit.dnode")
S3method(print, "bn.fit.onode")
S3method(print, "bn.fit.gnode")
S3method(print, "bn.fit.cgnode")
S3method(residuals, "bn.fit")
S3method(residuals, "bn.fit.dnode")
S3method(residuals, "bn.fit.onode")
S3method(residuals, "bn.fit.gnode")
S3method(residuals, "bn.fit.cgnode")
S3method(fitted, "bn.fit")
S3method(fitted, "bn.fit.dnode")
S3method(fitted, "bn.fit.onode")
S3method(fitted, "bn.fit.gnode")
S3method(fitted, "bn.fit.cgnode")
S3method(sigma, "bn.fit")
S3method(sigma, "bn.fit.dnode")
S3method(sigma, "bn.fit.onode")
S3method(sigma, "bn.fit.gnode")
S3method(sigma, "bn.fit.cgnode")
S3method(coef, "bn.fit")
S3method(coef, "bn.fit.dnode")
S3method(coef, "bn.fit.onode")
S3method(coef, "bn.fit.gnode")
S3method(coef, "bn.fit.cgnode")
S3method(print, "mvber.moments")
S3method(print, "bn.kcv")
S3method(plot, "bn.strength")
S3method(predict, "bn")
S3method(predict, "bn.fit")
S3method(predict, "bn.naive")
S3method(predict, "bn.tan")
S3method("$<-", "bn.fit")
S3method("[[<-", "bn.fit")

exportClasses("bn", "bn.fit")
exportMethods("nodes", "nodes<-", "degree")
