import { NehanDocument, CssStyleDeclaration, DomTokenList, ChildNodeFilter, NodeEffector } from "./public-api";
export declare class NehanElement {
    $node: Node | HTMLElement;
    $dom: HTMLElement | undefined;
    tagName: string;
    childNodes: NehanElement[];
    parent: NehanElement | null;
    root: NehanDocument;
    style: CssStyleDeclaration;
    computedStyle: CssStyleDeclaration;
    id: string;
    classList: DomTokenList;
    constructor(node: Node, root: NehanDocument);
    acceptChildFilter(visitor: ChildNodeFilter): NehanElement;
    acceptEffector(visitor: NodeEffector): NehanElement;
    acceptEffectorAll(visitor: NodeEffector): NehanElement;
    get nextSibling(): NehanElement | null;
    get previousSibling(): NehanElement | null;
    clone(deep?: boolean): NehanElement;
    protected createClassList(): DomTokenList;
    protected setupChildren($node: Node, root: NehanDocument): void;
    set innerHTML(html: string);
    get innerHTML(): string;
    get className(): string;
    set className(class_names: string);
    get pureTagName(): string;
    get attributes(): NamedNodeMap | null;
    get dataset(): DOMStringMap;
    get textContent(): string;
    protected getTagName(): string;
    getNodeName(): string;
    getPath(with_parent?: boolean): string;
    toString(with_index?: boolean): string;
    querySelectorAll(query: string): NehanElement[];
    querySelector(query: string): NehanElement | null;
    queryLeafs(selector: string): NehanElement[];
    appendChild(element: NehanElement): NehanElement;
    replaceChild(new_child: NehanElement, old_child: NehanElement | null): NehanElement;
    removeChild(target_child: NehanElement): NehanElement;
    insertBefore(new_node: NehanElement, ref_node: NehanElement | null): NehanElement | null;
    hasAttribute(name: string): boolean;
    isOnlyChild(): boolean;
    isOnlyOfType(): boolean;
    isFirstChild(): boolean;
    isLastChild(): boolean;
    isFirstElementChild(): boolean;
    isLastElementChild(): boolean;
    isNthChild(nth: number): boolean;
    isElement(): boolean;
    isTextElement(): boolean;
    setAttribute(name: string, value: string): void;
    get ownerDocument(): NehanDocument;
    get firstChild(): NehanElement | null;
    get firstTextElement(): NehanElement | null;
    get lastChild(): NehanElement | null;
    get lastElementChild(): NehanElement | null;
    get firstElementChild(): NehanElement | null;
    get nextElementSibling(): NehanElement | null;
    get previousElementSibling(): NehanElement | null;
    get firstAtomChild(): NehanElement | null;
    get siblings(): NehanElement[];
    get index(): number;
    get indexOfType(): number;
    get indexOfElement(): number;
    get children(): NehanElement[];
    getAttribute(name: string): string | null;
}
