#import <DOM/Node.idl>
#import <DOM/NodeFilter.idl>

// https://dom.spec.whatwg.org/#interface-treewalker
[Exposed=Window]
interface TreeWalker {
    [SameObject] readonly attribute Node root;
    readonly attribute unsigned long whatToShow;

    // FIXME: `object?` should be `NodeFilter?`, but we don't yet properly support callback interfaces.
    readonly attribute object? filter;

    attribute Node currentNode;

    Node? parentNode();
    Node? firstChild();
    Node? lastChild();
    Node? previousSibling();
    Node? nextSibling();
    Node? previousNode();
    Node? nextNode();
};
