import HTMLCollection from '../element/HTMLCollection.js'; import Element from '../element/Element.js'; import Node from '../node/Node.js'; import NodeList from '../node/NodeList.js'; import IHTMLElementTagNameMap from '../../config/IHTMLElementTagNameMap.js'; import ISVGElementTagNameMap from '../../config/ISVGElementTagNameMap.js'; export default interface IParentNode extends Node { readonly childElementCount: number; readonly firstElementChild: Element; readonly lastElementChild: Element; readonly children: HTMLCollection; /** * Inserts a set of Node objects or DOMString objects after the last child of the ParentNode. DOMString objects are inserted as equivalent Text nodes. * * @param nodes List of Node or DOMString. */ append(...nodes: (Node | string)[]): void; /** * Inserts a set of Node objects or DOMString objects before the first child of the ParentNode. DOMString objects are inserted as equivalent Text nodes. * * @param nodes List of Node or DOMString. */ prepend(...nodes: (Node | string)[]): void; /** * Query CSS Selector to find matching node. * * @param selector CSS selector. * @returns Matching element. */ querySelector( selector: K ): IHTMLElementTagNameMap[K] | null; querySelector( selector: K ): ISVGElementTagNameMap[K] | null; querySelector(selector: string): Element | null; /** * Query CSS selector to find matching nodes. * * @param selector CSS selector. * @returns Matching elements. */ querySelectorAll( selector: K ): NodeList; querySelectorAll( selector: K ): NodeList; querySelectorAll(selector: string): NodeList; /** * Query CSS selector to find matching nodes. * * @param selector CSS selector. * @returns Matching elements. */ querySelectorAll(selector: string): NodeList; /** * Returns an elements by class name. * * @param className Tag name. * @returns Matching element. */ getElementsByClassName(className: string): HTMLCollection; /** * Returns an elements by tag name. * * @param tagName Tag name. * @returns Matching element. */ getElementsByTagName( tagName: K ): HTMLCollection; getElementsByTagName( tagName: K ): HTMLCollection; getElementsByTagName(tagName: string): HTMLCollection; /** * Returns an elements by tag name and namespace. * * @param namespaceURI Namespace URI. * @param tagName Tag name. * @returns Matching element. */ getElementsByTagNameNS( namespaceURI: 'http://www.w3.org/1999/xhtml', tagName: K ): HTMLCollection; getElementsByTagNameNS( namespaceURI: 'http://www.w3.org/2000/svg', tagName: K ): HTMLCollection; getElementsByTagNameNS(namespaceURI: string, tagName: string): HTMLCollection; /** * Replaces the existing children of a node with a specified new set of children. * * @param nodes List of Node or DOMString. */ replaceChildren(...nodes: (Node | string)[]): void; }