import { MAP as l, SCALAR as a, SEQ as g } from "./accelbyte-widgets711.mjs";
import { map as h } from "./accelbyte-widgets722.mjs";
import { seq as m } from "./accelbyte-widgets723.mjs";
import { string as f } from "./accelbyte-widgets724.mjs";
import { getTags as r, coreKnownTags as u } from "./accelbyte-widgets725.mjs";
const O = (o, t) => o.key < t.key ? -1 : o.key > t.key ? 1 : 0;
class i {
  constructor({ compat: t, customTags: n, merge: p, resolveKnownTags: c, schema: s, sortMapEntries: e, toStringDefaults: y }) {
    this.compat = Array.isArray(t) ? r(t, "compat") : t ? r(null, t) : null, this.merge = !!p, this.name = typeof s == "string" && s || "core", this.knownTags = c ? u : {}, this.tags = r(n, this.name), this.toStringOptions = y ?? null, Object.defineProperty(this, l, { value: h }), Object.defineProperty(this, a, { value: f }), Object.defineProperty(this, g, { value: m }), this.sortMapEntries = typeof e == "function" ? e : e === !0 ? O : null;
  }
  clone() {
    const t = Object.create(i.prototype, Object.getOwnPropertyDescriptors(this));
    return t.tags = this.tags.slice(), t;
  }
}
export {
  i as Schema
};
