useDynLib("Haplin", .registration = TRUE)

# export( haplin0, haplinSlide0 )
export( haplin, haplinSlide )
export( pedToHaplin, convertPed )
export( suest )
export( haptable )
export( pQQ, toDataFrame, output )
export( lineByLine, cbindFiles, rbindFiles )
export( snpPower, snpSampleSize )
export( hapSim, hapRun, hapPower, hapPowerAsymp, hapRelEff )
# export( haplinStrat0 )
export( haplinStrat, gxe )
export( genDataRead, genDataLoad, genDataGetPart, genDataPreprocess )
export( initParallelRun, finishParallelRun )
export( plotPValues )
export( showPheno, showGen, showSNPnames, nsnps, nindiv, nfam )
export( getChildren, getFathers, getMothers, getFullTriads, getDyads )
# export( JohnsonFit, pJohnson )

import( ff )
# import( GenABEL, DatABEL )
import( parallel )
importFrom( rlang, caller_env, .data )
import( stats, graphics, grDevices, tools )

importFrom( "utils", "capture.output", "head", "read.table", "str", "tail",
  "write.table", "file_test", "packageDescription")
# importFrom( ffbase, table )
importFrom( mgcv, mroot )
importFrom( MASS, mvrnorm )
importFrom("methods", "is")

S3method( plot, haplin )
S3method( print, haplin )
S3method( summary, haplin )
S3method( coef, haplin )
S3method( haptable, haplin )
S3method( print, summary.haplin )
S3method( coef, haptable.hapSlide)

S3method( print, tri.glm )
S3method( summary, tri.glm )
S3method( print, summary.tri.glm )

S3method( print, suest )
S3method( print, HWE.test )
S3method( print, info )

S3method( plot, haplinStrat )
S3method( haptable, haplinStrat )
S3method( print, haplinStrat )
S3method( summary, haplinStrat )

S3method( coef, haptable )
S3method( plot, haptable )

# S3method( print, haplinTDT )
# S3method( summary, haplinTDT )
# S3method( plot, haplinTDT )

S3method( print, haplinSlide )
S3method( haptable, haplinSlide )
S3method( plot, haplinSlide )

S3method( haptable, default )

S3method( haptable, gxe )
S3method( print, gxe )

S3method( print, haplin.ready )
S3method( print, haplin.data )
