### C code
useDynLib(actuar, .registration = TRUE)

### Exports
export(## Credibility theory
       cm,
       ## Simulation of compound models
       simul, simpf, severity, unroll,
       ## Risk theory
       aggregateDist, CTE, TVaR, discretize, discretise, VaR, adjCoef, ruin,
       ## One parameter distributions
       dinvexp, pinvexp, qinvexp, rinvexp, minvexp, levinvexp,
       mexp, levexp, mgfexp,
       ## Two parameter distributions
       munif, levunif, mgfunif,
       mnorm, mgfnorm,
       mbeta, levbeta,
       mgamma, levgamma, mgfgamma,
       mchisq, levchisq, mgfchisq,
       dinvgamma, pinvgamma, qinvgamma, rinvgamma, minvgamma, levinvgamma, mgfinvgamma,
       dinvparalogis, pinvparalogis, qinvparalogis, rinvparalogis, minvparalogis, levinvparalogis,
       dinvpareto, pinvpareto, qinvpareto, rinvpareto, minvpareto, levinvpareto,
       dinvweibull, pinvweibull, qinvweibull, rinvweibull, minvweibull, levinvweibull,
       dlgompertz, plgompertz, qlgompertz, rlgompertz, mlgompertz, levlgompertz, # aliases
       dlgamma, plgamma, qlgamma, rlgamma, mlgamma, levlgamma,
       dllogis, pllogis, qllogis, rllogis, mllogis, levllogis,
       mlnorm, levlnorm,
       dparalogis, pparalogis, qparalogis, rparalogis, mparalogis, levparalogis,
       dpareto, ppareto, qpareto, rpareto, mpareto, levpareto, # aliases
       dpareto2, ppareto2, qpareto2, rpareto2, mpareto2, levpareto2, # aliases
       dpareto1, ppareto1, qpareto1, rpareto1, mpareto1, levpareto1,
       mweibull, levweibull,
       minvGauss, levinvGauss, mgfinvGauss, #notation from SuppDists package
       minvgauss, levinvgauss, mgfinvgauss,
       ## Three parameter distributions
       dburr, pburr, qburr, rburr, mburr, levburr,
       dgenpareto, pgenpareto, qgenpareto, rgenpareto, mgenpareto, levgenpareto,
       dinvburr, pinvburr, qinvburr, rinvburr, minvburr, levinvburr,
       dinvtrgamma, pinvtrgamma, qinvtrgamma, rinvtrgamma, minvtrgamma, levinvtrgamma,
       dtrgamma, ptrgamma, qtrgamma, rtrgamma, mtrgamma, levtrgamma,
       ## Four parameter distributions
       dgenbeta, pgenbeta, qgenbeta, rgenbeta, mgenbeta, levgenbeta,
       dtrbeta, ptrbeta, qtrbeta, rtrbeta, mtrbeta, levtrbeta,
       dpearson6, ppearson6, qpearson6, rpearson6, mpearson6, levpearson6, #aliases
       ## Phase-type distributions
       dphtype, pphtype, rphtype, mphtype, mgfphtype,
       ## Loss distributions
       grouped.data, ogive, emm, mde, elev, coverage
       )

### Imports
import(stats, graphics)

### Methods
S3method("[", grouped.data)
S3method("[<-", grouped.data)

S3method(aggregate, portfolio)

S3method(CTE, aggregateDist)

S3method(diff, aggregateDist)

S3method(elev, default)
S3method(elev, grouped.data)

S3method(emm, default)
S3method(emm, grouped.data)

S3method(frequency, portfolio)

S3method(hist, grouped.data)

S3method(knots, ogive)
S3method(knots, elev)

S3method(mean, aggregateDist)
S3method(mean, grouped.data)

S3method(plot, adjCoef)
S3method(plot, aggregateDist)
S3method(plot, elev)
S3method(plot, ogive)
S3method(plot, ruin)

S3method(predict, bstraub)
S3method(predict, cm)
S3method(predict, hache)
S3method(predict, hierarc)

S3method(print, aggregateDist)
S3method(print, elev)
S3method(print, cm)
S3method(print, mde)
S3method(print, ogive)
S3method(print, portfolio)
S3method(print, summary.aggregateDist)
S3method(print, summary.cm)

S3method(quantile, aggregateDist)
S3method(quantile, grouped.data)

S3method(severity, default)
S3method(severity, portfolio)

S3method(summary, aggregateDist)
S3method(summary, cm)
S3method(summary, elev)
S3method(summary, ogive)

S3method(VaR, aggregateDist)

S3method(weights, portfolio)
