useDynLib(cobs, .registration=TRUE)

importFrom("SparseM", as.matrix, as.matrix.csr, solve, t)
##  notably the S4 generics

importFrom("quantreg",
           rq.fit.sfn, rq.fit.sfnc)
## Import non-base functions we need explicitly,
## notably for which we define methods (here, only S3 ones):
importFrom("grDevices", gray,xy.coords)
importFrom("graphics", axis, legend, mtext, par, plot, points, lines)
importFrom("methods", new)
importFrom("stats",
	   approx, coef, knots, fitted, median, predict, resid, residuals, sd,
	   dnorm, pnorm, qnorm, qchisq, qt)
importFrom("utils",
           capture.output, str)
importFrom("splines", interpSpline)

export(cobs,
       conreg,
       drqssbc2,
       qbsks2,
       mk.pt.constr,
       ## "internal" but hopefully documented properly eventually:
       l1.design2,
       loo.design2,
       shat,
       interpSplineCon, isIsplineCon,

       ## Don't hide the plot methods on purpose (many surprising args):
       plot.cobs,
       plot.conreg
       )

S3method(fitted, cobs)
S3method(fitted, conreg)
S3method(residuals, cobs)
S3method(residuals, conreg)
S3method(knots, cobs)
S3method(knots, conreg)

S3method(print, cobs)
S3method(print, conreg)
S3method(predict, cobs)
S3method(predict, conreg)

S3method(plot, cobs)
S3method(plot, conreg)
S3method(lines, conreg)
#TODO: S3method(lines, cobs)

S3method(summary, cobs)
#TODO: S3method(summary, conreg)
