import(stats, utils, methods, deSolve)

## import only parts from graphics to avoid conflicts with
## functions and methods imported from deSolve
importFrom("grDevices", "dev.flush", "dev.hold", "xy.coords")
importFrom("graphics", "image", "par")

## bobyqa optimizer
importFrom("minqa", "bobyqa", "newuoa")

exportClasses(simObj, odeModel, gridModel, rwalkModel, indbasedModel)
exportClasses(numericOrlist, listOrNULL, functionOrNULL,
              listOrdata.frame, functionOrcharacter)

exportMethods(sim, parms, "parms<-", init, "init<-", times, "times<-")
exportMethods(inputs, "inputs<-", main, "main<-", equations, "equations<-")
exportMethods(solver, "solver<-", observer, "observer<-", out, "out<-")

exportMethods(plot, print, show)
exportMethods(editInit, editParms, editTimes)
exportMethods(initialize, initfunc, "initfunc<-")

exportMethods(coerce, as.list, as.simObj)

## generating functions
export(simObj, odeModel, gridModel, rwalkModel)

## utilities
export(addtoenv, fromtoby, mixNamedVec)
export(neighbours, neighbors, eightneighbours, eightneighbors, seedfill)
export(approxTime, approxTime1, sEdit, peaks)
export(iteration)

## parameter fitting
export(ssqOdeModel, fitOdeModel)
export(p.constrain, p.unconstrain)
exportClasses(modelFit)
exportMethods(coef, deviance, summary, "$", "[", "[[")

## generate bivariate correlated uniformly distributed random numbers
## from Plackett bivariate uniform distribution
export(pcu, pcuseries, rho2alpha, alpha2rho)

## not necessary because example models are stored as *data*
# export(lv, lv3, conway, diffusion, upca)

useDynLib(simecol, .registration = TRUE)