useDynLib(scidb)
import("methods")
importFrom("Matrix",nnzero, sparseMatrix, unpack, sparseVector)
importFrom("utils", head, tail)
importFrom("stats", aggregate, sd, var, reshape, glm, glm.fit, phyper, qhyper, quantile, dist, kmeans)
importFrom("graphics", image, hist)
import("RCurl", iterators)
importFrom("zoo", na.locf)
importFrom("digest", digest)

# Functions
export("bound")
export("factor_scidb")
export("levels_scidb")
export("unbound")
export("is.temp")
export("bernoulli")
export("replaceNA")
export("chunk_map")
export("antijoin")
export("scidb_fisher.test")
export("model_scidb")
export("persist")
export("scidb")
export("tsvd")
export("dimensions")
export("scidb_attributes")
export("scidb_types")
export("scidb_nullable")
export("scidb_coordinate_bounds")
export("scidb_coordinate_chunksize")
export("scidb_coordinate_overlap")
export("scidb_coordinate_start")
export("scidb_coordinate_end")
export("schema")
export("df2scidb")
export("scidbeval")
export("build")
export("redimension")
export("repart")
export("cumulate")
export("between")
export("cast")
export("slice")
export("as.scidb")
export("scidblist")
export("scidbls")
export("scidbconnect")
export("scidbdisconnect")
export("scidbremove")
export("subarray")
export("scidbrm")
export("iquery")
export("project")
export("bind")
export("rename")
export("count")
export("attribute_rename")
export("dimension_rename")
export("index_lookup")
export("show_commit_log")
export("peek")
export("iqdf")
export("remove_old_versions")
#export("order.scidb")

# S4 methods
exportClasses("scidb","scidbdf")
exportMethods("%<%","%>%","%<=%","%>=%","%==%","%!=%","%*%",print,is.scidb,diag,show,head,tail,sum,image,crossprod,tcrossprod,is.scidbdf,aggregate,apply,sweep,median,mean,sd,var,min,max,t,exp,sqrt,abs,sin,cos,tan,asin,acos,atan,unpack,reshape,regrid,svd,xgrid,glm,glm.fit,lag,Filter,na.locf,hist,phyper,qhyper,c,dist,kmeans,rank,order)

# S3 methods
S3method("summary",glm_scidb)
S3method("print",glm_scidb)
S3method("predict",glm_scidb)
S3method("persist",default)
S3method("persist",glm_scidb)
S3method("scidbremove",default)
S3method("scidbremove",glm_scidb)

S3method("Ops",scidb)
S3method("[",scidb)
S3method("[<-",scidb)
S3method("names",scidb)
S3method("names<-",scidb)
S3method("merge",scidb)
S3method("rownames",scidb)
S3method("colnames",scidb)
S3method("rownames<-",scidb)
S3method("colnames<-",scidb)
S3method("dimnames",scidb)
S3method("dimnames<-",scidb)
S3method("str",scidb)
S3method("ncol",scidb)
S3method("nrow",scidb)
S3method("dim",scidb)
S3method("length",scidb)
S3method("sort",scidb)
S3method("unique",scidb)
S3method("subset",scidb)
S3method("log",scidb)
S3method("diff",scidb)
S3method("cbind",scidb)
S3method("solve",scidb)
S3method("all.equal",scidb)
S3method("quantile",scidb)
S3method("$",scidb)

S3method("Ops",scidbdf)
S3method("[",scidbdf)
S3method("$",scidbdf)
S3method("names",scidbdf)
S3method("names<-",scidbdf)
S3method("rownames",scidbdf)
S3method("rownames<-",scidbdf)
S3method("row.names<-",scidbdf)
S3method("row.names",scidbdf)
S3method("colnames",scidbdf)
S3method("dimnames",scidbdf)
S3method("dimnames<-",scidbdf)
S3method("merge",scidbdf)
S3method("str",scidbdf)
S3method("ncol",scidbdf)
S3method("nrow",scidbdf)
S3method("dim",scidbdf)
S3method("length",scidbdf)
S3method("sort",scidbdf)
S3method("unique",scidbdf)
S3method("subset",scidbdf)
S3method("log",scidbdf)
S3method("cbind",scidbdf)
S3method("rbind",scidbdf)
S3method("all.equal",scidbdf)
S3method("quantile",scidbdf)
