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