import type { NobjcObject } from "objc-js";
import type { _NSArray } from "./NSArray.js";
import type { _NSData } from "./NSData.js";
import type { _NSDictionary } from "./NSDictionary.js";
import type { _NSString } from "./NSString.js";
import type { _NSURL } from "./NSURL.js";
import type { _NSXMLDTD } from "./NSXMLDTD.js";
import type { _NSXMLElement } from "./NSXMLElement.js";
import type { _NSXMLNode } from "./NSXMLNode.js";
import type { NSXMLDocumentContentKind } from "./NSXMLDocumentContentKind.js";
import type { NSXMLNodeOptions } from "./NSXMLNodeOptions.js";
export declare class _NSXMLDocument extends _NSXMLNode {
    static alloc(): _NSXMLDocument;
    static new(): _NSXMLDocument;
    static replacementClassForClass$(cls: NobjcObject): NobjcObject;
    init(): _NSXMLDocument;
    /**
     * @method initWithXMLString:options:error: @abstract Returns a document created from either XML or HTML, if the HTMLTidy option is set. Parse errors are returned in <tt>error</tt>.
     */
    initWithXMLString$options$error$(string_: _NSString, mask: NSXMLNodeOptions, error: NobjcObject | null): _NSXMLDocument | null;
    /**
     * @method initWithContentsOfURL:options:error: @abstract Returns a document created from the contents of an XML or HTML URL. Connection problems such as 404, parse errors are returned in <tt>error</tt>.
     */
    initWithContentsOfURL$options$error$(url: _NSURL, mask: NSXMLNodeOptions, error: NobjcObject | null): _NSXMLDocument | null;
    /** primitive */
    initWithData$options$error$(data: _NSData, mask: NSXMLNodeOptions, error: NobjcObject | null): _NSXMLDocument | null;
    /**
     * @method initWithRootElement: @abstract Returns a document with a single child, the root element.
     */
    initWithRootElement$(element: _NSXMLElement | null): _NSXMLDocument;
    /**
     * @method setRootElement: @abstract Set the root element. Removes all other children including comments and processing-instructions.
     */
    setRootElement$(root: _NSXMLElement): void;
    /** primitive */
    rootElement(): _NSXMLElement | null;
    /** primitive */
    insertChild$atIndex$(child: _NSXMLNode, index: number): void;
    /**
     * @method insertChildren:atIndex: @abstract Insert several children at a particular index.
     */
    insertChildren$atIndex$(children: _NSArray, index: number): void;
    /** primitive */
    removeChildAtIndex$(index: number): void;
    /** primitive */
    setChildren$(children: _NSArray | null): void;
    /** @method addChild: @abstract Adds a child to the end of the existing children. */
    addChild$(child: _NSXMLNode): void;
    /**
     * @method replaceChildAtIndex:withNode: @abstract Replaces a child at a particular index with another child.
     */
    replaceChildAtIndex$withNode$(index: number, node: _NSXMLNode): void;
    /**
     * @method XMLDataWithOptions: @abstract The representation of this node as it would appear in an XML document, encoded based on characterEncoding.
     */
    XMLDataWithOptions$(options: NSXMLNodeOptions): _NSData;
    /**
     * @method objectByApplyingXSLT:arguments:error: @abstract Applies XSLT with arguments (NSString key/value pairs) to this document, returning a new document.
     */
    objectByApplyingXSLT$arguments$error$(xslt: _NSData, arguments_: _NSDictionary | null, error: NobjcObject | null): NobjcObject | null;
    /**
     * @method objectByApplyingXSLTString:arguments:error: @abstract Applies XSLT as expressed by a string with arguments (NSString key/value pairs) to this document, returning a new document.
     */
    objectByApplyingXSLTString$arguments$error$(xslt: _NSString, arguments_: _NSDictionary | null, error: NobjcObject | null): NobjcObject | null;
    /**
     * @method objectByApplyingXSLTAtURL:arguments:error: @abstract Applies the XSLT at a URL with arguments (NSString key/value pairs) to this document, returning a new document. Error may contain a connection error from the URL.
     */
    objectByApplyingXSLTAtURL$arguments$error$(xsltURL: _NSURL, argument: _NSDictionary | null, error: NobjcObject | null): NobjcObject | null;
    validateAndReturnError$(error: NobjcObject | null): boolean;
    /** primitive */
    characterEncoding(): _NSString | null;
    setCharacterEncoding$(value: _NSString | null): void;
    /** primitive */
    standalone(): boolean;
    setStandalone$(value: boolean): void;
    /** primitive */
    documentContentKind(): NSXMLDocumentContentKind;
    setDocumentContentKind$(value: NSXMLDocumentContentKind): void;
    /** primitive */
    MIMEType(): _NSString | null;
    setMIMEType$(value: _NSString | null): void;
    /** primitive */
    DTD(): _NSXMLDTD | null;
    setDTD$(value: _NSXMLDTD | null): void;
    /** @abstract Invokes XMLDataWithOptions with NSXMLNodeOptionsNone. */
    XMLData(): _NSData;
}
