type t = Dom.range;
let make: unit => t;let collapsed: t => bool;let commonAncestorContainer: t => Dom.node;let endContainer: t => Dom.node;let endOffset: t => int;let startContainer: t => Dom.node;let startOffset: t => int;let setStart: Dom.node_like('a) => int => t => unit;let setEnd: Dom.node_like('a) => int => t => unit;let setStartBefore: Dom.node_like('a) => t => unit;let setStartAfter: Dom.node_like('a) => t => unit;let setEndBefore: Dom.node_like('a) => t => unit;let setEndAfter: Dom.node_like('a) => t => unit;let selectNode: Dom.node_like('a) => t => unit;let selectNodeContents: Dom.node_like('a) => t => unit;let collapse: t => unit;let collapseToStart: t => unit;let cloneContents: t => Dom.documentFragment;let deleteContents: t => unit;let insertNode: Dom.node_like('a) => t => unit;let surroundContents: Dom.node_like('a) => t => unit;let compareBoundaryPoints: int => t => t => int;
let compareBoundaryPoint: Webapi__Dom__Types.compareHow => t => t => Webapi__Dom__Types.compareResult;
let cloneRange: t => t;let detach: t => unit;let toString: t => string;let comparePoint: Dom.node_like('a) => int => t => int;
let comparePoint: Dom.node_like('a) => int => t => Webapi__Dom__Types.compareResult;
let createContextualFragment: string => t => Dom.documentFragment;let getBoundingClientRect: t => Dom.domRect;let getClientRects: t => array(Dom.domRect);let intersectsNode: Dom.node_like('a) => t => bool;let isPointInRange: Dom.node_like('a) => int => t => bool;