import("graphics")
import("grDevices")
import("stats")
import("utils")
import(MASS)
import(mvtnorm)
import(copula)
import(methods)
import(lattice)

importFrom(ADGofTest, ad.test)
importFrom("igraph", "E", "E<-", "V", "V<-", "as_adjacency_matrix",
  "as_edgelist", "delete_edges", "ends", "graph_from_adjacency_matrix",
  "graph_from_edgelist", "gsize", "layout_in_circle", "layout_with_graphopt",
  "make_full_graph", "mst", "plot.igraph")

export(pobs)

export(BiCop)
export(BiCopEst)
export(BiCopMetaContour)
export(BiCopChiPlot)
export(BiCopKPlot)
export(BiCopLambda)
export(BiCopVuongClarke)
export(BiCopIndTest)
export(BiCopSim)
export(BiCopPDF)
export(BiCopCDF)
export(BiCopPar2Tau)
export(BiCopPar2TailDep)
export(BiCopTau2Par)
export(BiCopSelect)
export(BiCopName)
export(BiCopHfunc)
export(BiCopDeriv)
export(BiCopDeriv2)
export(BiCopHfuncDeriv)
export(BiCopHfuncDeriv2)
export(BiCopGofTest)

export(RVineLogLik)
export(RVinePDF)
export(RVineAIC)
export(RVineBIC)
export(RVineMatrix)
export(RVineMatrixCheck)
export(RVineSim)
export(RVineSeqEst)
export(RVineCopSelect)
export(RVineMLE)
export(RVineStructureSelect)
export(RVineTreePlot)
export(RVineVuongTest)
export(RVineClarkeTest)
export(RVinePar2Tau)
export(RVineGrad)
export(RVineHessian)
export(RVineStdError)

export(C2RVine)
export(D2RVine)

export(TauMatrix)

export(RVineCor2pcor,RVinePcor2cor, RVineMatrixNormalize)
export(RVinePIT)
export(RVineGofTest)

export(BiCopPar2Beta)
export(RVinePar2Beta)
export(BetaMatrix)

export(as.copuladata)
export(pairs.copuladata)

# compatibility to copula
export(fitCopula)
export(dduCopula,ddvCopula)

export(BB1Copula, surBB1Copula, r90BB1Copula, r270BB1Copula)
export(BB6Copula, surBB6Copula, r90BB6Copula, r270BB6Copula)
export(BB7Copula, surBB7Copula, r90BB7Copula, r270BB7Copula)
export(BB8Copula, surBB8Copula, r90BB8Copula, r270BB8Copula)
export(joeBiCopula, surJoeBiCopula, r90JoeBiCopula, r270JoeBiCopula)
export(surClaytonCopula, r90ClaytonCopula, r270ClaytonCopula)
export(surGumbelCopula, r90GumbelCopula, r270GumbelCopula)
export(tawnT1Copula, surTawnT1Copula, r90TawnT1Copula, r270TawnT1Copula)
export(tawnT2Copula, surTawnT2Copula, r90TawnT2Copula, r270TawnT2Copula)
export(vineCopula)
export(copulaFromFamilyIndex)

exportClasses(BB1Copula, surBB1Copula, r90BB1Copula, r270BB1Copula)
exportClasses(BB6Copula, surBB6Copula, r90BB6Copula, r270BB6Copula)
exportClasses(BB7Copula, surBB7Copula, r90BB7Copula, r270BB7Copula)
exportClasses(BB8Copula, surBB8Copula, r90BB8Copula, r270BB8Copula)
exportClasses(joeBiCopula, surJoeBiCopula, r90JoeBiCopula, r270JoeBiCopula)
exportClasses(surClaytonCopula, r90ClaytonCopula, r270ClaytonCopula)
exportClasses(surGumbelCopula, r90GumbelCopula, r270GumbelCopula)
exportClasses(tawnT1Copula, surTawnT1Copula, r90TawnT1Copula, r270TawnT1Copula)
exportClasses(tawnT2Copula, surTawnT2Copula, r90TawnT2Copula, r270TawnT2Copula)
exportClasses(vineCopula)


S3method(print, RVineMatrix)
S3method(as.copuladata, data.frame)
S3method(as.copuladata, matrix)
S3method(as.copuladata, list)
S3method(pairs, copuladata)
S3method(plot, BiCop)

useDynLib("VineCopula")