import NodeType from './type';
import HTMLElement from './html';
/**
 * Node Class as base class for TextNode and HTMLElement.
 */
export default abstract class Node {
    parentNode: HTMLElement;
    abstract rawTagName: string;
    abstract nodeType: NodeType;
    childNodes: Node[];
    range: readonly [number, number];
    abstract text: string;
    abstract rawText: string;
    abstract toString(): string;
    abstract clone(): Node;
    constructor(parentNode?: HTMLElement, range?: [number, number]);
    /**
     * Remove current node
     */
    remove(): this;
    get innerText(): string;
    get textContent(): string;
    set textContent(val: string);
}
