useDynLib(nanotime, .registration = TRUE)
import("methods")
import("bit64")
importFrom("RcppCCTZ", "parseDouble", "formatDouble")
importFrom("zoo", "index2char")
importFrom("utils", "head", "tail")

S3method(as.Date,nanotime)
S3method(as.POSIXct,nanotime)
S3method(as.POSIXlt,nanotime)
S3method(as.data.frame,nanotime)
S3method(as.integer64,nanotime)
S3method(format,nanotime)
S3method(as.character,nanotime)
S3method(index2char,nanotime)
S3method(c,nanotime)

export(NA_nanotime_)
export(NA_nanoduration_)
export(NA_nanoival_)
export(NA_nanoperiod_)
export(as.nanotime)
export(nanotime.matrix)
exportClasses(nanotime)
exportMethods("+")
exportMethods("-")
exportMethods("[[")
exportMethods("[")
exportMethods("[<-")
exportMethods(Arith)
exportMethods(Compare)
exportMethods(Complex)
exportMethods(Logic)
exportMethods(Math)
exportMethods(Math2)
exportMethods(Summary)
exportMethods(max)
exportMethods(min)
exportMethods(nanotime)
exportMethods(as.nanotime)
exportMethods(print)
exportMethods(range)
exportMethods(show)
exportMethods("names<-")
exportMethods(is.na)
exportMethods(as.nanoduration)
exportMethods(show)
exportMethods(print)
exportMethods(plus)
exportMethods(minus)


exportMethods(intersect.idx)
exportMethods(intersect)
exportMethods(union)
exportMethods(setdiff.idx)
exportMethods(setdiff)
exportMethods(as.nanoival)
exportClasses(nanoival)
export(nanoival)
exportMethods(nanoival.start)
exportMethods(nanoival.end)
exportMethods(nanoival.sopen)
exportMethods(nanoival.eopen)
exportMethods(print)
exportMethods(show)
exportMethods(names)
exportMethods("names<-")
exportMethods("<")
exportMethods("<=")
exportMethods(">")
exportMethods(">=")
exportMethods("[")
exportMethods("[<-")
exportMethods("is.na")
exportMethods("is.na<-")
S3method(c, nanoival)
exportMethods(t)
exportMethods(is.unsorted)
exportMethods(sort)
S3method(seq, nanotime)
exportMethods(seq)
exportMethods(all.equal)
S3method(all.equal, nanotime)

exportClasses(nanoperiod)
export(nanoperiod)
exportMethods(as.nanoperiod)
exportMethods(nanoperiod.month)
exportMethods(nanoperiod.day)
exportMethods(nanoperiod.nanoduration)
S3method(c, nanoperiod)

exportClasses(nanoduration)
export(nanoduration)
S3method(as.integer64,nanoduration)
exportMethods(as.nanoduration)
S3method(c, nanoduration)
S3method(as.data.frame,nanoduration)

S3method(seq, nanoduration)

S3method(format,nanoival)
S3method(format,nanoduration)
S3method(format,nanoperiod)
S3method(as.character,nanoival)

exportMethods(nano_wday)
exportMethods(nano_mday)
exportMethods(nano_month)
exportMethods(nano_year)
exportMethods(nano_ceiling)
exportMethods(nano_floor)

S3method("%in%", nanotime)
exportMethods("%in%")

if (getRversion() > "4.5.0") exportMethods(unique)
