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

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(condition, default)

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

S3method(print, condTbl)
S3method(condition, 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(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(.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, equivClass)
