import { XmlElement } from './XmlElement.js';
import { XmlNode } from './XmlNode.js';
import type { XmlComment } from './XmlComment.js';
import type { XmlDeclaration } from './XmlDeclaration.js';
import type { XmlDocumentType } from './XmlDocumentType.js';
import type { XmlProcessingInstruction } from './XmlProcessingInstruction.js';
/**
 * Represents an XML document. All elements within the document are descendants
 * of this node.
 */
export declare class XmlDocument extends XmlNode {
    /**
     * Child nodes of this document.
     */
    readonly children: Array<XmlComment | XmlDeclaration | XmlDocumentType | XmlProcessingInstruction | XmlElement>;
    constructor(children?: Array<XmlComment | XmlDeclaration | XmlDocumentType | XmlElement | XmlProcessingInstruction>);
    get document(): this;
    /**
     * Root element of this document, or `null` if this document is empty.
     */
    get root(): XmlElement | null;
    /**
     * Text content of this document and all its descendants.
     */
    get text(): string;
    get type(): string;
    toJSON(): import("./types.js").JsonObject & {
        children: import("./types.js").JsonObject[];
    };
}
//# sourceMappingURL=XmlDocument.d.ts.map