AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.2.3" />

 IRange

interface IRange
bool Collapsed { get; }

Node EndContainer { get; }

int EndOffset { get; }

int StartOffset { get; }

void Collapse(bool toStart)

RangePosition ComparePoint(Node node, int offset)

void Detach()

void InsertNode(Node node)

bool IntersectsNode(Node node)

bool IsPointInRange(Node node, int offset)

void SelectNode(Node refNode)

void SelectNodeContents(Node refNode)

void SetEnd(Node refNode, int offset)

void SetEndAfter(Node refNode)

void SetEndBefore(Node refNode)

void SetStart(Node refNode, int offset)

void SetStartAfter(Node refNode)

void SetStartBefore(Node refNode)

void SurroundContents(Node newParent)