### Visible functions:
export("allPerms",
       "Blocks",
       "check",
       "getBlocks",
       "getWithin",
       "getStrata",
       "getType",
       "getMirror",
       "getConstant",
       "getPlots",
       "getRow",
       "getCol",
       "getDim",
       "getNperm",
       "getMaxperm",
       "getMinperm",
       "getComplete",
       "getMake",
       "getObserved",
       "getAllperms",
       "how",
       "numPerms",
       "permCheck",
       "permControl",
       "permute",
       "Plots",
       "setBlocks<-",
       "setWithin<-",
       "setStrata<-",
       "setType<-",
       "setMirror<-",
       "setConstant<-",
       "setPlots<-",
       "setRow<-",
       "setCol<-",
       "setDim<-",
       "setNperm<-",
       "setMaxperm<-",
       "setMinperm<-",
       "setComplete<-",
       "setMake<-",
       "setObserved<-",
       "setAllperms<-",
       "shuffle",
       "shuffleFree",
       "shuffleGrid",
       "shuffleSeries",
       "shuffleSet",
       "shuffleStrata",
       "Within"
       )

### Imports: nobs() only exists in R 2.13.0 for import. We define the
### same nobs() generic in permute for export in older R.
if (getRversion() >= "2.13.0") {
    importFrom("stats", "nobs")
} else {
    export(nobs)
}

### S3 Methods
S3method("as.matrix", "permutationMatrix")
S3method("update", "how")
S3method("update", "Plots")
## print methods
S3method("print", "allPerms")
S3method("print", "check")
S3method("print", "how")
S3method("print", "permControl")
S3method("print", "permutationMatrix")
S3method("print", "summary.allPerms")
S3method("print", "summary.check")
## summary methods
S3method("summary", "allPerms")
S3method("summary", "check")
## nobs() methods
S3method("nobs", "numeric")
S3method("nobs", "integer")
S3method("nobs", "matrix")
S3method("nobs", "data.frame")
## getFoo methods
S3method("getBlocks", "default")
S3method("getBlocks", "how")
S3method("getBlocks", "permControl")
S3method("getPlots", "default")
S3method("getPlots", "how")
S3method("getPlots", "permControl")
S3method("getWithin", "default")
S3method("getWithin", "how")
S3method("getWithin", "permControl")
S3method("getStrata", "default")
S3method("getStrata", "how")
S3method("getStrata", "permControl")
S3method("getStrata", "Plots")
S3method("getType", "default")
S3method("getType", "how")
S3method("getType", "permControl")
S3method("getType", "Plots")
S3method("getType", "Within")
S3method("getMirror", "default")
S3method("getMirror", "how")
S3method("getMirror", "permControl")
S3method("getMirror", "Plots")
S3method("getMirror", "Within")
S3method("getConstant", "default")
S3method("getConstant", "how")
S3method("getConstant", "permControl")
S3method("getConstant", "Within")
S3method("getNperm", "default")
S3method("getNperm", "how")
S3method("getNperm", "permControl")
S3method("getMaxperm", "default")
S3method("getMaxperm", "how")
S3method("getMaxperm", "permControl")
S3method("getMinperm", "default")
S3method("getMinperm", "how")
S3method("getMinperm", "permControl")
S3method("getComplete", "default")
S3method("getComplete", "how")
S3method("getComplete", "permControl")
S3method("getRow", "default")
S3method("getRow", "how")
S3method("getRow", "permControl")
S3method("getRow", "Plots")
S3method("getRow", "Within")
S3method("getCol", "default")
S3method("getCol", "how")
S3method("getCol", "permControl")
S3method("getCol", "Plots")
S3method("getCol", "Within")
S3method("getDim", "default")
S3method("getDim", "how")
S3method("getDim", "permControl")
S3method("getDim", "Plots")
S3method("getDim", "Within")
S3method("getMake", "default")
S3method("getMake", "how")
S3method("getObserved", "default")
S3method("getObserved", "how")
S3method("getAllperms", "default")
S3method("getAllperms", "how")

## setFoo methods
S3method("setBlocks<-", "default")
S3method("setBlocks<-", "how")
S3method("setBlocks<-", "permControl")
S3method("setPlots<-", "default")
S3method("setPlots<-", "how")
S3method("setWithin<-", "default")
S3method("setWithin<-", "how")
S3method("setStrata<-", "default")
S3method("setStrata<-", "how")
S3method("setStrata<-", "Plots")
S3method("setType<-", "default")
S3method("setType<-", "how")
S3method("setType<-", "Within")
S3method("setType<-", "Plots")
S3method("setMirror<-", "default")
S3method("setMirror<-", "how")
S3method("setMirror<-", "Within")
S3method("setMirror<-", "Plots")
S3method("setConstant<-", "default")
S3method("setConstant<-", "how")
S3method("setConstant<-", "Within")
S3method("setConstant<-", "Plots")
S3method("setNperm<-", "default")
S3method("setNperm<-", "how")
S3method("setNperm<-", "permControl")
S3method("setMaxperm<-", "default")
S3method("setMaxperm<-", "how")
S3method("setMaxperm<-", "permControl")
S3method("setMinperm<-", "default")
S3method("setMinperm<-", "how")
S3method("setMinperm<-", "permControl")
S3method("setComplete<-", "default")
S3method("setComplete<-", "how")
S3method("setComplete<-", "permControl")
S3method("setRow<-", "default")
S3method("setRow<-", "how")
S3method("setCol<-", "default")
S3method("setCol<-", "how")
S3method("setDim<-", "default")
S3method("setDim<-", "how")
S3method("setMake<-", "default")
S3method("setMake<-", "how")
S3method("setMake<-", "permControl")
S3method("setObserved<-", "default")
S3method("setObserved<-", "how")
S3method("setObserved<-", "permControl")
S3method("setAllperms<-", "default")
S3method("setAllperms<-", "how")
S3method("setAllperms<-", "permControl")
