useDynLib(copula)

importFrom(graphics, persp, contour)

importFrom(mvtnorm, dmvnorm, pmvnorm, dmvt, pmvt)

importFrom(sn, dmst) ## need to clean this up later
importFrom(sn, qsn, dsn, psn, dmsn, pmsn) ## for skewNormalCopula; unused currently

## importFrom(pspline)
           
export(dcopula, pcopula, rcopula)
export(dmvdc, pmvdc, rmvdc)
export(kendallsTau, spearmansRho, tailIndex)
export(calibKendallsTau, calibSpearmansRho)

## archmCopula methods
export(genFun, genInv, genFunDer1, genFunDer2)

## evCopula methods
export(Afun, AfunDer, Anfun)

exportClasses(mvdc)
exportClasses(copula, ellipCopula, archmCopula, evCopula)
exportClasses(indepCopula)
exportClasses(normalCopula, tCopula)
exportClasses(claytonCopula, frankCopula, gumbelCopula, amhCopula)
exportClasses(galambosCopula, huslerReissCopula, tawnCopula, tevCopula)
exportClasses(plackettCopula)
exportClasses(fgmCopula) 

export(mvdc)
export(ellipCopula, archmCopula, evCopula)
export(normalCopula, tCopula)
export(indepCopula)
export(claytonCopula, frankCopula, gumbelCopula, amhCopula)
export(galambosCopula, huslerReissCopula, tawnCopula, tevCopula)
export(plackettCopula)
export(fgmCopula)

exportMethods(show, summary)
exportMethods(persp, contour)

## fitting copula
export(loglikCopula, loglikMvdc)
export(fitCopula, fitMvdc)
exportClasses(fitCopula, fitMvdc)
exportClasses(summaryFitCopula, summaryFitMvdc)

## independence tests
export(indepTestSim, indepTest, multIndepTest,
       serialIndepTestSim, serialIndepTest, multSerialIndepTest,
       dependogram)

## gof tests
export(gofCopula, gofEVCopula)

## derivatives; testing
# export(derCdfWrtParams, derPdfWrtParams, tauDer, rhoDer)
# export(derCdfWrtArgs)

## graphical tools for testing independence
## export(ChiPlot, KPlot)
## testing purpose
## export(fitCopula.repar)

export(evTestC, evTestA, evTestAA, evTestK)
export(exchEVTest, exchTest)

## asymmetric copula class testing
exportClasses(asymCopula)
export(asymCopula)
exportClasses(asymExplicitCopula)
export(asymExplicitCopula)

S3method(print, indepTest)
S3method(print, gofCopula)
S3method(print, evTest)
