type t
= Dom.selection
;
let anchorNode: t => option(Dom.node);
let anchorOffset: t => int;
let focusNode: t => option(Dom.node);
let focusOffset: t => int;
let isCollapsed: t => bool;
let rangeCount: t => int;
let getRangeAt: int => t => Dom.range;
let collapse: Dom.node_like(_) => int => t => unit;
let extend: Dom.node_like(_) => int => t => unit;
let collapseToStart: t => unit;
let collapseToEnd: t => unit;
let selectAllChildren: Dom.node_like(_) => t => unit;
let setBaseAndExtent: Dom.node_like(_) => int => Dom.node_like(_) => int => t => unit;
let addRange: Dom.range => t => unit;
let removeRange: Dom.range => t => unit;
let removeAllRanges: t => unit;
let deleteFromDocument: t => unit;
let toString: t => string;
let containsNode: Dom.node_like(_) => t => bool;
let containsNodePartly: Dom.node_like(_) => t => bool;