
importFrom("stats", "na.omit", "na.fail", "na.exclude", "median")
importFrom("utils", "head", "tail")
useDynLib(declared, .registration = TRUE)

export(
    as.declared,
    as_declared,
    as.haven,
    as_haven,
    format_declared,
    is.declared,
    is.empty,
    declared,
    missing_values,
    "missing_values<-",
    missing_range,
    "missing_range<-",
    order_declared,
    undeclare,
    value_labels,
    w_mean,
    w_median,
    w_mode,
    w_sd,
    w_summary,
    w_table,
    w_var,
    w_quantile,
    w_standardize,
    "value_labels<-",
    variable_label,
    "variable_label<-"
)


S3method(print, w_table)
S3method(print, fobject)

S3method(format, pillar_shaft_declared_chr)
S3method(format, pillar_shaft_declared_num)

S3method(all.equal, declared)
S3method(as.character, declared)
S3method(c, declared)
S3method(head, declared)
S3method(mean, declared)
S3method(median, declared)
S3method(na.exclude, declared)
S3method(na.fail, declared)
S3method(na.omit, declared)
S3method(tail, declared)
S3method(sort, declared)
S3method(summary, declared)

S3method(declared, default)
S3method(as.declared, default)
S3method(as.declared, haven_labelled)
S3method(as.declared, factor)
S3method(as.declared, data.frame)
S3method(as.haven, default)
S3method(as.haven, declared)
S3method(as.haven, data.frame)

S3method(undeclare, default)
S3method(undeclare, data.frame)
S3method(undeclare, declared)
S3method(duplicated, declared)
S3method(unique, declared)
S3method(print, declared)

S3method("[", declared)
S3method("[<-", declared)
S3method(abs, declared)
S3method(sign, declared)
S3method(sqrt, declared)
S3method(floor, declared)
S3method(ceiling, declared)
S3method(trunc, declared)
S3method(round, declared)
S3method(signif, declared)
S3method(exp, declared)
S3method(log, declared)
S3method(expm1, declared)
S3method(log1p, declared)
S3method(cos, declared)
S3method(sin, declared)
S3method(tan, declared)
S3method(cospi, declared)
S3method(sinpi, declared)
S3method(tanpi, declared)
S3method(acos, declared)
S3method(asin, declared)
S3method(atan, declared)
S3method(lgamma, declared)
S3method(gamma, declared)
S3method(digamma, declared)
S3method(trigamma, declared)
S3method(cumsum, declared)
S3method(cumprod, declared)
S3method(cummax, declared)
S3method(cummin, declared)
S3method("+", declared)
S3method("-", declared)
S3method("*", declared)
S3method("/", declared)
S3method("^", declared)
S3method("%%", declared)
S3method("%/%", declared)
S3method("%*%", declared)
S3method("&", declared)
S3method("|", declared)
S3method("!", declared)
S3method("==", declared)
S3method("!=", declared)
S3method("<=", declared)
S3method("<", declared)
S3method(">=", declared)
S3method(">", declared)
S3method("Arg", declared)
S3method("Conj", declared)
S3method("Im", declared)
S3method("Mod", declared)
S3method("Re", declared)

S3method(missing_values, default)
S3method(missing_values, haven_labelled_spss)
S3method(missing_values, declared)
S3method(missing_values, data.frame)
S3method("missing_values<-", default)
S3method("missing_values<-", declared)

S3method(missing_range, default)
S3method(missing_range, haven_labelled_spss)
S3method(missing_range, declared)
S3method(missing_range, data.frame)
S3method("missing_range<-", default)
S3method("missing_range<-", declared)

S3method(value_labels, default)
S3method(value_labels, haven_labelled_spss)
S3method(value_labels, declared)
S3method(value_labels, data.frame)
S3method("value_labels<-", default)
S3method("value_labels<-", declared)

S3method(variable_label, default)
S3method(variable_label, haven_labelled_spss)
S3method(variable_label, declared)
S3method(variable_label, data.frame)
S3method("variable_label<-", default)
S3method("variable_label<-", declared)

S3method("names<-", declared)
