import(boot, RColorBrewer)
importFrom(utils, packageDescription)

export(
	alphabet,
	"alphabet<-",
	cpal,
	"cpal<-",
	read.tda.mdist,
	recodef,
    seqalign,
	seqcomp,
	seqconc,
	seqdecomp,
	seqdef,
	seqdiff,
	seqdim,
	seqdist,
	seqdistmc,
	seqdplot,
	seqdss,
	seqdur,
	seqfcheck,
	seqfind,
	seqformat,
	seqfplot,
	seqfpos,
	seqgen,
	seqHtplot,
     seqici,
	seqient,
	seqiplot,
     seqIplot,
	seqistatd,
	seqlegend,
	seqlength,
	seqLLCP,
	seqLLCS,
	seqlogp,
	seqmeant,
	seqmodst,
	seqmpos,
	seqmsplot,
	seqmtplot,
	seqnum,
	seqplot,
        seqpcplot,
	seqpm,
	seqrecode,
	seqrep,
	seqrplot,
	seqsep,
	seqstatd,
	seqstatf,
	seqstatl,
	seqST,
	seqsubm,
	seqsubsn,
	seqtab,
	seqtransn,
	seqtrate,
	stlab,
	"stlab<-",
	TraMineR.checkupdates,
	TraMineRInternalNodeInit,
	TraMineRInternalSplitInit,
	TraMineRInternalLayout
  )

## stslist methods
S3method(summary, stslist)
S3method(print, stslist)
S3method("[", stslist)
S3method(plot, stslist)

## seqalign methods
S3method(plot, seqalign)
S3method(print, seqalign)

## seqpcplot methods
S3method(plot, seqpcplot)
S3method(summary , seqpcplot)

## stslist.stad methods
S3method(plot, stslist.statd)
S3method(print, stslist.statd)
S3method("[", stslist.statd)

## stslist.freq methods
S3method(plot, stslist.freq)
S3method(print, stslist.freq)
S3method("[", stslist.freq)

## stslist.meant methods
S3method(plot, stslist.meant)
S3method(print, stslist.meant)

## stslist.rep methods
S3method(plot, stslist.rep)
S3method(print, stslist.rep)
S3method(summary, stslist.rep)

## stslist.modst methods
S3method(plot, stslist.modst)
S3method(print, stslist.modst)
S3method("[", stslist.modst)

## TraMineRPermut methods
S3method(print ,TraMineRPermut)
S3method(summary ,TraMineRPermut)
S3method(hist ,TraMineRPermut)

## diss module
export(
	dissassoc,
	disscenter,
	dissreg,
	dissrep,
	dissmfac,
	dissmfacw,
	disstreedisplay,
	disstree2dot,
	disstree2dotp,
	disstreeleaf,
	disstree,
	dissvar,
	gower_matrix,
	seqtree2dot,
	seqtree,
	seqtreedisplay
)
S3method(hist,dissassoc)
S3method(print,dissassoc)
S3method(print,dissregression)
S3method(print,dissmultifactor)
S3method(print,disstree)
S3method(print,seqtree)
S3method(print,seqdiff)
S3method(plot,seqdiff)
S3method(print,diss.rep)
S3method(summary,diss.rep)

## Subsequence module
S3method(plot,subseqelistchisq)
S3method(plot,subseqelist)
S3method("[",seqelist)
S3method(Math,seqelist)
S3method(Ops,seqelist)
S3method(plot,seqelist)
S3method(Summary,seqelist)
S3method(Math,seqe)
S3method(Ops,seqe)
S3method(plot,seqe)
S3method(Summary,seqe)
S3method(levels,seqe)
S3method(levels,seqelist)
S3method(str,seqelist)
S3method(str,seqe)
S3method(as.character,seqe)
S3method(as.character,seqelist)
S3method(print,seqe)
S3method(print,seqelist)
S3method(print,seqeconstraint)
S3method(print,subseqelist)
S3method("[",subseqelist)
S3method(plot,subseqelist)

export(
  seqeapplysub,
	seqecmpgroup,
	seqeconstraint,
	seqecontain,
	seqecreate,
	seqefsub,
	seqeid,
	seqelength,
	seqesetlength,
	"seqelength<-",
	seqeweight,
	"seqeweight<-",
	is.seqe,
	is.seqelist,
  seqetm
)


useDynLib(TraMineR,
##Debug
TMR_getTraMineRDebugLevel = getTraMineRDebugLevel,
TMR_setTraMineRDebugLevel = setTraMineRDebugLevel,
##Inertia
TMR_tmrsubmatrixinertia=tmrsubmatrixinertia,
TMR_tmrWeightedInertiaDist = tmrWeightedInertiaDist,
TMR_tmrWeightedInertiaContrib = tmrWeightedInertiaContrib,
TMR_tmrWeightedInertiaContribExt = tmrWeightedInertiaContribExt,
TMR_tmrinertiacontribext = tmrinertiacontribext,
TMR_tmrWeightedInterInertia = tmrWeightedInterInertia,
##Distance
TMR_cLCP = cLCP,
TMR_dist2matrix = dist2matrix,
TMR_checktriangleineq = checktriangleineq,
TMR_cLCS = cLCS,
TMR_cLEVEN = cLEVEN,
TMR_cstringdistance = cstringdistance,
##Seqe
TMR_tmrsequencegetdictionary = tmrsequencegetdictionary,
TMR_tmrsequencestring = tmrsequencestring,
TMR_tmrmatrixsubseqinseq = tmrmatrixsubseqinseq,
TMR_tmrsequencecontainevent = tmrsequencecontainevent,
TMR_tmrsequenceseveral = tmrsequenceseveral,
TMR_tmrsequence = tmrsequence,
TMR_tmrseqedist = tmrseqedist,
TMR_tmreventinseq = tmreventinseq,
TMR_tmrfindsubsequences = tmrfindsubsequences,
TMR_tmrsequencegetid = tmrsequencegetid,
TMR_tmrsequencegetlength = tmrsequencegetlength,
TMR_tmrsequencesetlength = tmrsequencesetlength,
TMR_tmrsequencegetweight = tmrsequencegetweight,
TMR_tmrsequencesetweight = tmrsequencesetweight
)

