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;
}
//# sourceMappingURL=IParentNode.d.ts.map