import r from "./select.js";
import i from "./selectAll.js";
import m from "./selectChild.js";
import l from "./selectChildren.js";
import n from "./filter.js";
import s from "./data.js";
import c from "./enter.js";
import p from "./exit.js";
import f from "./join.js";
import _ from "./merge.js";
import a from "./order.js";
import d from "./sort.js";
import h from "./call.js";
import u from "./nodes.js";
import y from "./node.js";
import x from "./size.js";
import C from "./empty.js";
import g from "./each.js";
import v from "./attr.js";
import w from "./style.js";
import j from "./property.js";
import z from "./classed.js";
import A from "./text.js";
import S from "./html.js";
import b from "./raise.js";
import E from "./lower.js";
import k from "./append.js";
import q from "./insert.js";
import B from "./remove.js";
import D from "./clone.js";
import F from "./datum.js";
import G from "./on.js";
import H from "./dispatch.js";
import I from "./iterator.js";
var J = [null];
function e(o, t) {
  this._groups = o, this._parents = t;
}
function K() {
  return new e([[document.documentElement]], J);
}
function L() {
  return this;
}
e.prototype = K.prototype = {
  constructor: e,
  select: r,
  selectAll: i,
  selectChild: m,
  selectChildren: l,
  filter: n,
  data: s,
  enter: c,
  exit: p,
  join: f,
  merge: _,
  selection: L,
  order: a,
  sort: d,
  call: h,
  nodes: u,
  node: y,
  size: x,
  empty: C,
  each: g,
  attr: v,
  style: w,
  property: j,
  classed: z,
  text: A,
  html: S,
  raise: b,
  lower: E,
  append: k,
  insert: q,
  remove: B,
  clone: D,
  datum: F,
  on: G,
  dispatch: H,
  [Symbol.iterator]: I
};
export {
  e as Selection,
  K as default,
  J as root
};
