useDynLib(networkDynamic, .registration = TRUE)

import(statnet.common, network, networkLite)
importFrom("methods", "el")
importFrom("methods", "is")
importFrom("stats", "na.omit")
importFrom("utils", "read.table", "tail")

export(
networkDynamic,
print.networkDynamic,
as.data.frame.networkDynamic,
is.networkDynamic,
as.networkDynamic,
as.network.networkDynamic,
as.networkDynamic.networkDynamic,
as.networkDynamic.network,
read.son,
"%t%",
network.extract,
"%k%",
network.collapse,
get.networks,
network.dynamic.check,
activate.edges,
activate.vertices,
add.edges.active,
add.vertices.active,       
deactivate.edges,
deactivate.vertices,
delete.edge.activity,
delete.vertex.activity,       
get.change.times,
get.edgeIDs.active,
get.edges.active,
get.neighborhood.active,
get.edge.activity,       
get.vertex.activity,       
is.active,
is.adjacent.active,
network.dyadcount.active,
network.edgecount.active,
network.naedgecount.active,
network.size.active,
activate.network.attribute,
get.network.attribute.active,
activate.vertex.attribute,
get.vertex.attribute.active,
activate.edge.attribute,
activate.edge.value,
get.edge.attribute.active,
deactivate.edge.attribute,
deactivate.vertex.attribute,
deactivate.network.attribute,
list.vertex.attributes.active,
list.edge.attributes.active,
list.network.attributes.active,
get.edge.value.active,
spells.overlap,
spells.hit,
search.spell,
get.vertex.id,
vertex.pid.check,
get.vertex.pid,
initialize.pids,
get.edge.id,
get.edge.pid,
edge.pid.check,
add.vertices.networkDynamic,
add.edges.networkDynamic,
add.edge.networkDynamic,
reconcile.vertex.activity,
reconcile.edge.activity,
adjust.activity,
get.dyads.active,
when.vertex.attrs.match,
when.edge.attrs.match,
edges.age.at,
dyads.age.at,
vertices.age.at
#when.next.edge.change
)

# register S3 methods
S3method(add.edge,networkDynamic)
S3method(add.edges,networkDynamic)
S3method(add.vertices,networkDynamic)
S3method(as.data.frame,networkDynamic)
S3method(as.network,networkDynamic)
S3method(as.networkDynamic,network)
S3method(as.networkDynamic,networkDynamic)
S3method(print,networkDynamic)
S3method(as.networkDynamic,networkLite)
S3method(as.networkDynamic,siena)

# these are NOT S3 methods, but are included here because its the 
# only way to quiet the warning
S3method(add.edges,active)
S3method(add.vertices,active)
S3method(network.dyadcount,active)
S3method(network.edgecount,active)
S3method(network.naedgecount,active)
S3method(network.size,active)
S3method(get.vertex.attribute,active)
S3method(list.vertex.attributes,active)
S3method(get.edge.attribute,active)
S3method(get.edge.value,active)
S3method(list.edge.attributes,active)
S3method(get.network.attribute,active)
S3method(list.network.attributes,active)
