/** @typedef {import("./attribute.js").Attribute} Attribute */
export default class Element extends Parent {
    constructor(name: any, owner?: null);
    /** @type {globalThis.NamedNodeMap} */
    get attributes(): globalThis.NamedNodeMap;
    /** @type {globalThis.DOMStringMap} */
    get dataset(): globalThis.DOMStringMap;
    /** @type {globalThis.DOMTokenList} */
    get classList(): globalThis.DOMTokenList;
    /** @type {import("./document-fragment.js").default} */
    get content(): import("./document-fragment.js").default;
    /** @type {string} */
    get localName(): string;
    /** @type {string} */
    get nodeName(): string;
    /** @type {string} */
    get tagName(): string;
    /** @type {string} */
    get outerHTML(): string;
    /** @type {{cssText: string}} */
    get style(): {
        cssText: string;
    };
    set innerHTML(text: string);
    /** @type {string} */
    get innerHTML(): string;
    set textContent(data: string);
    /** @type {string} */
    get textContent(): string;
    set id(value: string);
    /** @type {string} */
    get id(): string;
    set className(value: string);
    /** @type {string} */
    get className(): string;
    cloneNode(deep?: boolean): Element;
    /**
     * @param {string} name
     * @returns {string?}
     */
    getAttribute(name: string): string | null;
    /**
     * @param {string} name
     * @returns {Attribute?}
     */
    getAttributeNode(name: string): Attribute | null;
    /**
     * @returns {string[]}
     */
    getAttributeNames(): string[];
    /**
     * @param {string} name
     * @returns {boolean}
     */
    hasAttribute(name: string): boolean;
    /**
     * @returns {boolean}
     */
    hasAttributes(): boolean;
    /**
     * @param {string} name
     */
    removeAttribute(name: string): void;
    /**
     * @param {Attribute} attribute
     */
    removeAttributeNode(attribute: Attribute): void;
    /**
     * @param {string} name
     * @param {string} value
     */
    setAttribute(name: string, value: string): void;
    /**
     * @param {Attribute} attribute
     */
    setAttributeNode(attribute: Attribute): void;
    /**
     * @param {string} name
     * @param {boolean?} force
     * @returns {boolean}
     */
    toggleAttribute(name: string, ...rest: any[]): boolean;
    [attributes]: any;
    [childNodes]: any;
}
export type Attribute = import("./attribute.js").Attribute;
import Parent from './parent.js';
import Attribute from './attribute.js';
import { attributes } from './symbols.js';
import { childNodes } from './symbols.js';
