// https://dom.spec.whatwg.org/#shadowroot
[Exposed=Window]
interface ShadowRoot : DocumentFragment {
    readonly attribute ShadowRootMode mode;
    readonly attribute boolean delegatesFocus;
    readonly attribute SlotAssignmentMode slotAssignment;
    readonly attribute boolean clonable;
    readonly attribute boolean serializable;
    readonly attribute Element host;
    attribute EventHandler onslotchange;

    // https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization

    [CEReactions] undefined setHTMLUnsafe((TrustedHTML or Utf16DOMString) html);
    DOMString getHTML(optional GetHTMLOptions options = {});

    [CEReactions, LegacyNullToEmptyString] attribute (TrustedHTML or Utf16DOMString) innerHTML;
};

ShadowRoot includes DocumentOrShadowRoot;

enum ShadowRootMode { "open", "closed" };
[MissingValueDefault=named, InvalidValueDefault=named]
enum SlotAssignmentMode { "manual", "named" };
