importFrom(stats, nlminb)
importFrom(methods, is)

export(
    exponential.q,
    exponential.Np,
    hyperbolic.q,
    hyperbolic.Np,
    hyperbolic.D,
    harmonic.q,
    harmonic.Np,
    harmonic.D,
    hyp2exp.transition,
    hyp2exp.q,
    hyp2exp.Np,
    hyp2exp.D,
    curtailed.q,
    curtailed.Np,
    curtailed.D,
    as.nominal,
    as.effective,
    rescale.by.time,
    curtail,
    arps.decline,
    arps.with.buildup,
    arps.q,
    arps.Np,
    arps.D,
    arps.eur,
    arps.t.el,
    best.exponential,
    best.hyperbolic,
    best.hyp2exp,
    best.fit,
    best.exponential.from.Np,
    best.exponential.from.interval,
    best.hyperbolic.from.Np,
    best.hyperbolic.from.interval,
    best.hyp2exp.from.Np,
    best.hyp2exp.from.interval,
    best.fit.from.Np,
    best.fit.from.interval,
    best.exponential.curtailed,
    best.hyperbolic.curtailed,
    best.hyp2exp.curtailed,
    best.curtailed.fit,
    best.exponential.curtailed.from.Np,
    best.hyperbolic.curtailed.from.Np,
    best.hyp2exp.curtailed.from.Np,
    best.curtailed.fit.from.Np,
    best.exponential.curtailed.from.interval,
    best.hyperbolic.curtailed.from.interval,
    best.hyp2exp.curtailed.from.interval,
    best.curtailed.fit.from.interval,
    best.exponential.with.buildup,
    best.hyperbolic.with.buildup,
    best.hyp2exp.with.buildup,
    best.fit.with.buildup,
    best.exponential.from.Np.with.buildup,
    best.hyperbolic.from.Np.with.buildup,
    best.hyp2exp.from.Np.with.buildup,
    best.fit.from.Np.with.buildup,
    best.exponential.from.interval.with.buildup,
    best.hyperbolic.from.interval.with.buildup,
    best.hyp2exp.from.interval.with.buildup,
    best.fit.from.interval.with.buildup
)

S3method(arps.q, exponential)
S3method(arps.Np, exponential)
S3method(arps.D, exponential)
S3method(arps.q, hyperbolic)
S3method(arps.Np, hyperbolic)
S3method(arps.D, hyperbolic)
S3method(arps.q, hyp2exp)
S3method(arps.Np, hyp2exp)
S3method(arps.D, hyp2exp)
S3method(arps.q, buildup)
S3method(arps.Np, buildup)
S3method(arps.D, buildup)
S3method(arps.q, curtailed)
S3method(arps.Np, curtailed)
S3method(arps.D, curtailed)
S3method(print, arps)
S3method(format, arps)
S3method(format, exponential)
S3method(format, hyperbolic)
S3method(format, hyp2exp)
S3method(format, buildup)
S3method(format, curtailed)
