#import <DOM/Element.idl>
#import <DOM/Node.idl>
#import <DOM/Text.idl>
#import <HTML/HTMLElement.idl>

// https://html.spec.whatwg.org/multipage/scripting.html#htmlslotelement
[Exposed=Window]
interface HTMLSlotElement : HTMLElement {

    [HTMLConstructor] constructor();

    [CEReactions, Reflect] attribute DOMString name;
    sequence<Node> assignedNodes(optional AssignedNodesOptions options = {});
    sequence<Element> assignedElements(optional AssignedNodesOptions options = {});
    undefined assign((Element or Text)... nodes);
};

dictionary AssignedNodesOptions {
    boolean flatten = false;
};