# distibutions
export(WEI3, dWEI3, pWEI3, qWEI3, rWEI3,
       SICHEL, dSICHEL, pSICHEL, qSICHEL, rSICHEL,VSICHEL,tofySICHEL,
       SHASH, dSHASH, pSHASH, qSHASH, rSHASH,
       SHASHo, dSHASHo, pSHASHo, qSHASHo, rSHASHo,
       SHASHo2, dSHASHo2, pSHASHo2, qSHASHo2, rSHASHo2,
       exGAUS, dexGAUS, pexGAUS, qexGAUS, rexGAUS,
       ST1, dST1, pST1, qST1, rST1,
       ST2, dST2, pST2, qST2, rST2,
       ST3, dST3, pST3, qST3, rST3,
       ST3C, dST3C, pST3C, qST3C, rST3C,
       SST, dSST, pSST, qSST, rSST,
       ST4, dST4, pST4, qST4, rST4,
       ST5, dST5, pST5, qST5, rST5,
       DEL, dDEL, pDEL, qDEL, rDEL,
       ZIP2, dZIP2, pZIP2, qZIP2, rZIP2,
       RGE, dRGE, pRGE, qRGE, rRGE,
       BEOI, dBEOI, pBEOI, qBEOI, rBEOI, plotBEOI, meanBEOI,
       BEZI, dBEZI, pBEZI, qBEZI, rBEZI, plotBEZI, meanBEZI,
       NOF, dNOF, pNOF, qNOF, rNOF,
       GAF, dGAF, pGAF, qGAF, rGAF,
       GG, dGG, pGG, qGG, rGG,
       GIG, dGIG, pGIG, qGIG, rGIG,
       EXP, dEXP, pEXP, qEXP, rEXP,
       SEP1, dSEP1, pSEP1, qSEP1, rSEP1,
       SEP2, dSEP2, pSEP2, qSEP2, rSEP2,
       SEP3, dSEP3, pSEP3, qSEP3, rSEP3,
       SEP4, dSEP4, pSEP4, qSEP4, rSEP4,
       GT, dGT, pGT, qGT, rGT,
       GB1, dGB1, pGB1, qGB1, rGB1,
       GB2, dGB2, pGB2, qGB2, rGB2,
       GP, dGP, pGP, qGP, rGP,
       EGB2, dEGB2, pEGB2, qEGB2, rEGB2,
       LG, dLG, pLG, qLG, rLG,
       ZALG, dZALG, pZALG, qZALG, rZALG,
       ZAP, dZAP, pZAP, qZAP, rZAP,
       ZABI, dZABI, pZABI, qZABI, rZABI,
       ZIBI, dZIBI, pZIBI, qZIBI, rZIBI,
       ZINBI, dZINBI, pZINBI, qZINBI, rZINBI,
       ZANBI, dZANBI, pZANBI, qZANBI, rZANBI,
       ZIBB, dZIBB, pZIBB, qZIBB, rZIBB,
       ZABB, dZABB, pZABB, qZABB, rZABB,
       ZIPIG, dZIPIG, pZIPIG, qZIPIG, rZIPIG,
       ZAPIG, dZAPIG, pZAPIG, qZAPIG, rZAPIG,
       ZIPF, dZIPF, pZIPF, qZIPF, rZIPF, zetaP,
       ZAZIPF, dZAZIPF, pZAZIPF, qZAZIPF, rZAZIPF,
       NBF, dNBF, pNBF, qNBF,rNBF,
       SN1, dSN1, pSN1, qSN1, rSN1,
       SN2, dSN2, pSN2, qSN2, rSN2,
       DPO, dDPO, pDPO, qDPO, rDPO, get_C,
       BNB, dBNB, pBNB, qBNB, rBNB,
       ZABNB, dZABNB, pZABNB, qZABNB, rZABNB,
       ZIBNB, dZIBNB, pZIBNB, qZIBNB, rZIBNB,
       ZINBF, dZINBF, pZINBF, qZINBF, rZINBF,
       ZASICHEL, dZASICHEL, pZASICHEL, qZASICHEL, rZASICHEL,
       ZISICHEL, dZISICHEL, pZISICHEL, qZISICHEL, rZISICHEL,
       DBI, dDBI, pDBI, qDBI, rDBI, GetBI_C)
# original distibutions
export(dBCCG, pBCCG, qBCCG, rBCCG, BCCG, BCCGo, BCCGuntr,
       dBCCGo, pBCCGo, qBCCGo, rBCCGo,
       dBCPE, pBCPE, qBCPE, rBCPE, BCPE, BCPEo, BCPEuntr,
       dBCPEo, pBCPEo, qBCPEo, rBCPEo,
       dBCT, pBCT, qBCT, rBCT, BCT, BCTo, BCTuntr,
       dBCTo, pBCTo, qBCTo, rBCTo,
       dGA, pGA, qGA, rGA, GA,
       dGU, pGU, qGU, rGU, GU,
       dIG, pIG, qIG, rIG, IG,
       dJSU, pJSU, qJSU, rJSU, JSU,
       dJSUo, pJSUo, qJSUo, rJSUo, JSUo,
       dLO, pLO, qLO, rLO, LO,
       dLNO, pLNO, qLNO, rLNO, LNO,
       dLOGNO, pLOGNO, qLOGNO, rLOGNO, LOGNO,
       dLOGNO2, pLOGNO2, qLOGNO2, rLOGNO2, LOGNO2,
       dLOGITNO, pLOGITNO, qLOGITNO, rLOGITNO, LOGITNO,
       dSIMPLEX, pSIMPLEX, qSIMPLEX, rSIMPLEX, SIMPLEX,
       dNO2, pNO2, qNO2, rNO2, NO2,
       dLQNO, pLQNO, qLQNO, rLQNO, LQNO,
       dNET, pNET, qNET, rNET, NET, 
       dNO, pNO, qNO, rNO, NO,
       dPE, pPE, qPE, rPE, PE,
       dPE2, pPE2, qPE2, rPE2, PE2,
       dRG, pRG, qRG, rRG, RG,
       dTF, pTF, qTF, rTF,TF,
       dTF2, pTF2, qTF2, rTF2,TF2,
       dWEI, pWEI, qWEI, rWEI, WEI,
       dWEI2, pWEI2, qWEI2, rWEI2, WEI2,
       PO, dPO, pPO, qPO, rPO,
       NBI, dNBI, pNBI, qNBI, rNBI,
       NBII, dNBII, pNBII, qNBII, rNBII,
       BI, dBI, pBI, qBI, rBI,
       BB, dBB, pBB, qBB, rBB,
       BE, dBE, pBE, qBE, rBE,
       BEo, dBEo, pBEo, qBEo, rBEo,
       BEINF, dBEINF, pBEINF, qBEINF, rBEINF,plotBEINF,meanBEINF,
       BEINF0, dBEINF0, pBEINF0, qBEINF0, rBEINF0,plotBEINF0,meanBEINF0,
       BEINF1, dBEINF1, pBEINF1, qBEINF1, rBEINF1,plotBEINF1,meanBEINF1,
       SEP, dSEP, pSEP, qSEP, rSEP,
       ZIP, dZIP, pZIP, qZIP, rZIP,
       PIG, dPIG, pPIG, qPIG, rPIG,
       PIG2, dPIG2, pPIG2, qPIG2, rPIG2,
       SI, dSI, pSI, qSI, rSI, tofyS,
       ZAIG, dZAIG, pZAIG, qZAIG, rZAIG, plotZAIG, meanZAIG,
       ZAGA, dZAGA, pZAGA, qZAGA, rZAGA, plotZAGA, meanZAGA,
       GEOMo, dGEOMo, pGEOMo, qGEOMo, rGEOMo,
       IGAMMA, dIGAMMA, pIGAMMA, qIGAMMA,rIGAMMA,
       PARETO2, dPARETO2, pPARETO2, qPARETO2, rPARETO2,
       PARETO2o, dPARETO2o, pPARETO2o, qPARETO2o, rPARETO2o,
       PARETO, dPARETO, pPARETO, qPARETO, rPARETO,
       PARETO1, dPARETO1, pPARETO1, qPARETO1, rPARETO1,
       PARETO1o, dPARETO1o, pPARETO1o, qPARETO1o, rPARETO1o,
      WARING, dWARING, pWARING, qWARING, rWARING,
      YULE, dYULE, pYULE, qYULE, rYULE,
      GPO, dGPO, pGPO, qGPO, rGPO,
      GEOM, dGEOM, pGEOM, qGEOM, rGEOM,
      DBURR12, dDBURR12, pDBURR12, qDBURR12, rDBURR12,
      MN3, dMN3, pMN3, qMN3, rMN3,
      MN4, dMN4, pMN4, qMN4, rMN4,
      MN5, dMN5, pMN5, qMN5, rMN5,
      MULTIN, fittedMN,
      hazardFun, gen.hazard,
      Family, Family.d, Family.p, Family.q, Family.r, gen.Family,
      flexDist, count_1_31, count_1_22, count_2_32,
      count_2_32R, count_2_33, count_3_32, count_3_33,
      binom_1_31, binom_2_33, binom_3_33,
      contR_2_12, contR_3_11, contR_4_13,
      contRplus_2_11, contRplus_3_13, contRplus_4_33, contR01_2_13,
      contR01_4_33, momentSK, centileSK, centileSkew, centileKurt, 
      theoCentileSK, plotCentileSK, checkMomentSK, checkCentileSK 
)
# needed for gamlss family
export(as.family, gamlss.family, gamlss.family.default, as.gamlss.family,
       checklink, make.link.gamlss, show.link)

#export(fJSU, fSHASHo, fSEP3, fST3_1, fST3_2, fEGB2_1, fEGB2_2  )

importFrom("methods", "is")
#importFrom("base", "requireNamespace")
import(MASS)
import(graphics)
importFrom("graphics", "lines")
import(grDevices)
import(stats)


#importFrom("graphics", "lines")
#importFrom("graphics", "abline", "axis", "curve", "legend", "lines",
#             "par", "plot", "points", "title")
#importFrom("grDevices", "gray")
# documented but unexported methods

S3method(gamlss.family, default)
S3method(print, gamlss.family)


## distributions3 class GAMLSS, encapsulating all gamlss.dist distributions
export(GAMLSS)
S3method(format,GAMLSS)
S3method(print,GAMLSS)
S3method(mean,GAMLSS)
S3method(distributions3::variance,GAMLSS)
S3method(distributions3::skewness,GAMLSS)
S3method(distributions3::kurtosis,GAMLSS)
S3method(distributions3::pdf,GAMLSS)
S3method(distributions3::log_pdf,GAMLSS)
S3method(distributions3::cdf,GAMLSS)
S3method(quantile,GAMLSS)
S3method(distributions3::random,GAMLSS)
S3method(distributions3::is_continuous,GAMLSS)
S3method(distributions3::is_discrete,GAMLSS)
S3method(distributions3::support,GAMLSS)


# the following commands has to be used for creating the c file 
# to register the c functions
# tools::package_native_routine_registration_skeleton(".")
useDynLib(gamlss.dist, .registration = TRUE)
