useDynLib(sdcMicro)
import("methods")
import("Rcpp")
import("Rglpk")
import("robustbase")
import("MASS")
import("car")
import("cluster")
import("e1071")

exportClasses(
	'sdcMicroObj'
)

exportMethods(
	'get.sdcMicroObj',
	'nextSdcObj',
	'report',
	'set.sdcMicroObj',
	'addNoise',
	'dataGen',
	'dRisk',
	'dRiskRMD',
	'dUtility',
	'localSupp',
	'pram_strata','pram',
	'topBotCoding',
	'suda2',
	'rankSwap',
	'report',
    'shuffle',
	'localSuppression',
	'globalRecode',
	'LLmodGlobalRisk',
	'LocalRecProg',
	'measure_risk',
	'calcRisks',
  'undolast',
  'varToFactor',
  'varToNumeric'
)


##################################
### Export remaining functions ###
##################################
export(
varToFactor,varToNumeric,groupVars,renameVars,
    undolast,calcRisks,report,addNoise, dataGen, dRisk, dUtility, globalRecode, LLmodGlobalRisk, LocalRecProg,
    createSdcObj,
    dRiskRMD,
    freqCalc,
    indivRisk,
    localSuppression,
    localSupp,
    microaggregation,
    plot.localSuppression,
    plotMicro,
    pram,
    print.freqCalc,
    print.indivRisk,
    print.localSuppression,
    print.micro,
    print.pram,
    print.suda2,
    report,
    summary.freqCalc,
    summary.micro,
    summary.pram,
    swappNum,
    topBotCoding,
    valTable,
    rankSwap,
    shuffle,
    suda2,
    pram_strata,
    measure_risk,
    ldiversity,
    # deprecated functions
    localSupp2,
    localSupp2Wrapper,
    print.pram_strata
)

S3method(print, indivRisk)
S3method(print, freqCalc)
S3method(print, localSuppression)
S3method(print, micro)
S3method(print, pram)
#S3method(print, pram_strata)
S3method(print, measure_risk)
S3method(print, ldiversity)
S3method(print, suda2)
S3method(summary, freqCalc)
S3method(summary, micro)
S3method(summary, pram)
S3method(plot, localSuppression)