export(makeFuzzy, selectCases, selectCases1, 
       configTable, ct2df, condition, condList,
       msc, asf, csf, condTbl, as.condTbl, coherence, 
       cna, cnaControl, group.by.outcome, cyclic, 
       full.ct, allCombs, is.inus, is.submodel, identical.model, minimalize, 
       randomAsf, randomCsf, detailMeasures, some, 
       showConCovMeasures, showDetailMeasures, showMeasures,
       # exported "internal" objects
       getCond, rreduce, .det, .inus, 
       noblanks, rhs, lhs, extract_asf, 
       ctInfo, qcond_csf, qcond_asf, qcond_bool, 
       stdCond, matchCond, 
       redundant, minimalizeCsf,
       fs2cs, C_recCharList2char, C_relist_Int, 
       relist1, C_concat, C_mconcat, hstrsplit, 
       C_redund, getComplexity, getCondType, 
       C_is_submodel, 
       # Deprecated fns:
       cscna, mvcna, fscna, 
       csct, mvct, fsct, 
       cscond, mvcond, fscond
)

useDynLib(cna, .registration = TRUE)
importFrom(Rcpp, sourceCpp)
importFrom(utils, head, tail, combn, packageVersion, getFromNamespace, flush.console)
importFrom(stats, as.dist, cutree, hclust, setNames)
importFrom(Matrix, Matrix)
importFrom(matrixStats, rowMins, rowMaxs, rowAnys, rowAlls, 
           colMins, colAnys, colAlls)
importFrom(car, some)

S3method(print, configTable)
S3method("$<-", configTable)
S3method("[", configTable)
S3method("[[<-", configTable)
S3method("[<-", configTable)
S3method(as.data.frame, configTable) 
S3method(some, data.frame)
S3method(some, configTable)
S3method(subset, configTable)
S3method(head, configTable)
S3method(tail, configTable)

S3method(print, cna)
S3method(print, cond)
S3method(condList, character)

S3method(as.condTbl, condList)
S3method(as.condTbl, data.frame)
S3method(as.data.frame, condList)

S3method(print, condTbl)
S3method(condList, condTbl)
S3method(as.data.frame, condTbl)
S3method("[", condTbl)

S3method(print, condString)
S3method("[", condString)
S3method(format, condString)
S3method(print, outcomeString)
S3method("[", outcomeString)
S3method(format, outcomeString)
S3method(print, stdBoolean)
S3method("[", stdBoolean)
S3method(format, stdBoolean)
S3method(print, stdAtomic)
S3method("[", stdAtomic)
S3method(format, stdAtomic)
S3method(print, stdComplex)
S3method("[", stdComplex)
S3method(format, stdComplex)
S3method("[", casesList)
S3method(format, casesList)

S3method(print, condList)
S3method(summary, condList)
S3method("[", condList)
S3method("[[", condList)
S3method("$", condList)

S3method(print, complexCond)
S3method(print, invalidCond)
S3method(print, groupedConds)
S3method(print, groupedC)

S3method(subset, cti)
S3method("[", ctiList)

S3method(full.ct, default)
S3method(full.ct, configTable)
S3method(full.ct, cti)
S3method(full.ct, ctiList)
S3method(full.ct, condTbl)

S3method(.det, default)
S3method(.det, cti)
S3method(.det, ctiList)

S3method(.inus, default)
S3method(.inus, cti)
S3method(.inus, configTable)
S3method(.inus, ctiList)

S3method(.redund, default)
S3method(.redund, configTable)
S3method(.redund, cti)
S3method(.redund, ctiList)

S3method(.exff, default)
S3method(.exff, configTable)
S3method(.exff, ctiList)

S3method(minimalizeCsf, default)
S3method(minimalizeCsf, cna)
S3method(minimalizeCsf, cti)
S3method(.minCsf, cti)
S3method(.minCsf, ctiList)

S3method(coherence, default)
S3method(coherence, cti)

S3method(print, measuresDefinition)
