var l = Object.defineProperty;
var n = (r, e, t) => e in r ? l(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
var i = (r, e, t) => (n(r, typeof e != "symbol" ? e + "" : e, t), t);
import { transpose as c } from "../../transpose.js";
import { constructFrom as h } from "../../constructFrom.js";
const m = 10;
class u {
  constructor() {
    i(this, "subPriority", 0);
  }
  validate(e, t) {
    return !0;
  }
}
class I extends u {
  constructor(e, t, s, o, a) {
    super(), this.value = e, this.validateValue = t, this.setValue = s, this.priority = o, a && (this.subPriority = a);
  }
  validate(e, t) {
    return this.validateValue(e, this.value, t);
  }
  set(e, t, s) {
    return this.setValue(e, t, this.value, s);
  }
}
class S extends u {
  constructor() {
    super(...arguments);
    i(this, "priority", m);
    i(this, "subPriority", -1);
  }
  set(t, s) {
    return s.timestampIsSet ? t : h(t, c(t, Date));
  }
}
export {
  S as DateToSystemTimezoneSetter,
  u as Setter,
  I as ValueSetter
};
