[
CustomToJSObject,
JSCustomHeader,
JSGenerateToNativeObject,
ExportMacro=WEBCORE_EXPORT,
] interface Element : Node {
readonly attribute DOMString? tagName;
[DOMJIT=ReadDOM] DOMString? getAttribute(DOMString name);
[CEReactions, MayThrowException] void setAttribute(DOMString name, DOMString value);
[CEReactions] void removeAttribute(DOMString name);
[DOMJIT=ReadDOM] Attr? getAttributeNode(DOMString name);
[CEReactions, MayThrowException] Attr? setAttributeNode(Attr newAttr);
[CEReactions, MayThrowException] Attr removeAttributeNode(Attr oldAttr);
[DOMJIT=ReadDOM] HTMLCollection getElementsByTagName(DOMString name);
readonly attribute NamedNodeMap attributes;
[DOMJIT=ReadDOM] boolean hasAttributes();
DOMString? getAttributeNS(DOMString? namespaceURI, DOMString localName);
[CEReactions, MayThrowException] void setAttributeNS(DOMString? namespaceURI, DOMString qualifiedName, DOMString value);
[CEReactions] void removeAttributeNS(DOMString? namespaceURI, DOMString localName);
HTMLCollection getElementsByTagNameNS(DOMString? namespaceURI, DOMString localName);
Attr? getAttributeNodeNS(DOMString? namespaceURI, DOMString localName);
[CEReactions, MayThrowException] Attr? setAttributeNodeNS(Attr newAttr);
boolean hasAttribute(DOMString name);
boolean hasAttributeNS(DOMString? namespaceURI, DOMString localName);
[ImplementedAs=cssomStyle] readonly attribute CSSStyleDeclaration style;
[CEReactions, Reflect] attribute DOMString id;
readonly attribute DOMString? namespaceURI;
readonly attribute DOMString? prefix;
readonly attribute DOMString localName;
readonly attribute double offsetLeft;
readonly attribute double offsetTop;
readonly attribute double offsetWidth;
readonly attribute double offsetHeight;
readonly attribute double clientLeft;
readonly attribute double clientTop;
readonly attribute double clientWidth;
readonly attribute double clientHeight;
attribute long scrollLeft; attribute long scrollTop; readonly attribute long scrollWidth;
readonly attribute long scrollHeight;
[ImplementedAs=bindingsOffsetParent] readonly attribute Element offsetParent;
void scrollIntoView(optional boolean alignWithTop = true);
void scrollIntoViewIfNeeded(optional boolean centerIfNeeded = true);
[ImplementedAs=scrollTo] void scroll(optional ScrollToOptions options);
[ImplementedAs=scrollTo] void scroll(unrestricted double x, unrestricted double y);
void scrollTo(optional ScrollToOptions options);
void scrollTo(unrestricted double x, unrestricted double y);
void scrollBy(optional ScrollToOptions option);
void scrollBy(unrestricted double x, unrestricted double y);
void scrollByLines(optional long lines = 0);
void scrollByPages(optional long pages = 0);
sequence<DOMString> getAttributeNames();
HTMLCollection getElementsByClassName(DOMString name);
[CEReactions, TreatNullAs=EmptyString, SetterMayThrowException] attribute DOMString innerHTML;
[CEReactions, TreatNullAs=EmptyString, SetterMayThrowException] attribute DOMString outerHTML;
[CEReactions, Reflect=class] attribute DOMString className;
[PutForwards=value] readonly attribute DOMTokenList classList;
[MayThrowException] boolean matches(DOMString selectors);
[MayThrowException] Element? closest(DOMString selectors);
[ImplementedAs=matches, MayThrowException] boolean webkitMatchesSelector(DOMString selectors);
ClientRectList getClientRects();
ClientRect getBoundingClientRect();
#