/**
* Returns an element's attributes without falling prey to things like
*
. Equivalent to
* `node.attributes`.
* @param {!Element} element
* @return {!NamedNodeMap}
*/
export function getElementAttributes(element: Element): NamedNodeMap;
/**
* Returns whether an element has a specific attribute, without falling prey to
* things like .
* Equivalent to {@code element.hasAttribute("foo")}.
* @param {!Element} element
* @param {string} attrName
* @return {boolean}
*/
export function hasElementAttribute(element: Element, attrName: string): boolean;
/**
* Returns a specific attribute from an element without falling prey to
* things like .
* Equivalent to {@code element.getAttribute("foo")}.
* @param {!Element} element
* @param {string} attrName
* @return {?string}
*/
export function getElementAttribute(element: Element, attrName: string): string | null;
/**
* Sets an element's attributes without falling prey to things like
* . Equivalent to {@code
* element.setAttribute("foo", "bar")}.
* @param {!Element} element
* @param {string} name
* @param {string} value
*/
export function setElementAttribute(element: Element, name: string, value: string): void;
/**
* Deletes a specific attribute from an element without falling prey to
* things like .
* Equivalent to {@code element.removeAttribute("foo")}.
* @param {!Element} element
* @param {string} attrName
*/
export function removeElementAttribute(element: Element, attrName: string): void;
/**
* Returns a node's innerHTML property value without falling prey to things like
* . Equivalent to
* `element.innerHTML`.
* @param {!Element} element
* @return {string}
*/
export function getElementInnerHTML(element: Element): string;
/**
* Returns an element's style without falling prey to things like
* .
* @param {!Element} element
* @return {!CSSStyleDeclaration}
*/
export function getElementStyle(element: Element): CSSStyleDeclaration;
/**
* Get the children of a specific tag matching the provided tag name without
* falling prey to things like .
* Equivalent to {@code element.getElementsByTagName("foo")}.
* @param {!Element} element
* @param {string} name
* @return {!Array}
*/
export function getElementsByTagName(element: Element, name: string): Array;
/**
* Returns an element's style without falling prey to things like
* .
* @param {!Element} element
* @return {!CSSStyleSheet}
*/
export function getElementStyleSheet(element: Element): CSSStyleSheet;
/**
* Returns true if the element would be selected by the provided selector,
* without falling prey to things like .
* Equivalent to {@code element.matches("foo")}.
* @param {!Element} element
* @param {string} selector
* @return {boolean}
*/
export function elementMatches(element: Element, selector: string): boolean;
/**
* Asserts that a Node is an Element, without falling prey to things like
* .
* @param {!Node} node
* @return {!Element}
*/
export function assertNodeIsElement(node: Node): Element;
/**
* Returns whether the node is an Element, without falling prey to things like
* .
* @param {!Node} node
* @return {boolean}
*/
export function isNodeElement(node: Node): boolean;
/**
* Returns a node's nodeName without falling prey to things like
* .
* @param {!Node} node
* @return {string}
*/
export function getNodeName(node: Node): string;
/**
* Returns a node's nodeType without falling prey to things like
* ``.
* @param {!Node} node
* @return {number}
*/
export function getNodeType(node: Node): number;
/**
* Returns a node's parentNode without falling prey to things like
* .
* @param {!Node} node
* @return {?Node}
*/
export function getParentNode(node: Node): Node | null;
/**
* Returns the value of node.childNodes without falling prey to things like
* .
* @param {!Node} node
* @return {!NodeList}
*/
export function getChildNodes(node: Node): any;
/**
* Appends a child to a node without falling prey to things like
* .
* @param {!Node} parent
* @param {!Node} child
* @return {!Node}
*/
export function appendNodeChild(parent: Node, child: Node): Node;
/**
* Provides a way cross-browser way to get a CSS value from a CSS declaration.
* @param {!CSSStyleDeclaration} cssStyle A CSS style object.
* @param {string} propName A property name.
* @return {string} Value of the property as parsed by the browser.
* @supported IE8 and newer.
*/
export function getCssPropertyValue(cssStyle: CSSStyleDeclaration, propName: string): string;
/**
* Provides a cross-browser way to set a CSS value on a CSS declaration.
* @param {!CSSStyleDeclaration} cssStyle A CSS style object.
* @param {string} propName A property name.
* @param {string} sanitizedValue Sanitized value of the property to be set
* on the CSS style object.
* @supported IE8 and newer.
*/
export function setCssProperty(cssStyle: CSSStyleDeclaration, propName: string, sanitizedValue: string): void;
/**
* Returns an element's namespace URI without falling prey to things like
* .
* @param {!Element} element
* @return {string}
*/
export function getElementNamespaceURI(element: Element): string;
export type Methods = Function | null;
export namespace Methods {
const ATTRIBUTES_GETTER: Function | null;
const HAS_ATTRIBUTE: Function | null;
const GET_ATTRIBUTE: Function | null;
const SET_ATTRIBUTE: Function | null;
const REMOVE_ATTRIBUTE: Function | null;
const INNER_HTML_GETTER: Function | null;
const GET_ELEMENTS_BY_TAG_NAME: Function | null;
const MATCHES: Function | null;
const NODE_NAME_GETTER: Function | null;
const NODE_TYPE_GETTER: Function | null;
const PARENT_NODE_GETTER: Function | null;
const CHILD_NODES_GETTER: Function | null;
const APPEND_CHILD: Function | null;
const STYLE_GETTER: Function | null;
const SHEET_GETTER: Function | null;
const GET_PROPERTY_VALUE: Function | null;
const SET_PROPERTY: Function | null;
const NAMESPACE_URI_GETTER: Function | null;
}