# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.2

import enum
import sys
import types
import typing
import uuid

import winsdk._winrt as _winrt

try:
    import winsdk.windows.foundation
except Exception:
    pass

try:
    import winsdk.windows.foundation.collections
except Exception:
    pass

try:
    import winsdk.windows.storage
except Exception:
    pass

try:
    import winsdk.windows.storage.streams
except Exception:
    pass

class NodeType(enum.IntEnum):
    INVALID = 0
    ELEMENT_NODE = 1
    ATTRIBUTE_NODE = 2
    TEXT_NODE = 3
    DATA_SECTION_NODE = 4
    ENTITY_REFERENCE_NODE = 5
    ENTITY_NODE = 6
    PROCESSING_INSTRUCTION_NODE = 7
    COMMENT_NODE = 8
    DOCUMENT_NODE = 9
    DOCUMENT_TYPE_NODE = 10
    DOCUMENT_FRAGMENT_NODE = 11
    NOTATION_NODE = 12

class DtdEntity(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    notation_name: _winrt.Object
    public_id: _winrt.Object
    system_id: _winrt.Object
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> DtdEntity: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class DtdNotation(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    public_id: _winrt.Object
    system_id: _winrt.Object
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> DtdNotation: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class XmlAttribute(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    value: str
    specified: _winrt.Boolean
    name: str
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlAttribute: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class XmlCDataSection(IXmlText, IXmlCharacterData, IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    data: str
    length: _winrt.UInt32
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlCDataSection: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def append_data(self, data: str) -> None: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def split_text(self, offset: _winrt.UInt32) -> IXmlText: ...
    @typing.overload
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

class XmlComment(IXmlCharacterData, IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    data: str
    length: _winrt.UInt32
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlComment: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def append_data(self, data: str) -> None: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

class XmlDocument(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    doctype: XmlDocumentType
    document_element: XmlElement
    document_uri: str
    implementation: XmlDomImplementation
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    owner_document: XmlDocument
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDocument: ...
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def create_attribute(self, name: str) -> XmlAttribute: ...
    @typing.overload
    def create_attribute_n_s(self, namespace_uri: _winrt.Object, qualified_name: str) -> XmlAttribute: ...
    @typing.overload
    def create_c_data_section(self, data: str) -> XmlCDataSection: ...
    @typing.overload
    def create_comment(self, data: str) -> XmlComment: ...
    @typing.overload
    def create_document_fragment(self) -> XmlDocumentFragment: ...
    @typing.overload
    def create_element(self, tag_name: str) -> XmlElement: ...
    @typing.overload
    def create_element_n_s(self, namespace_uri: _winrt.Object, qualified_name: str) -> XmlElement: ...
    @typing.overload
    def create_entity_reference(self, name: str) -> XmlEntityReference: ...
    @typing.overload
    def create_processing_instruction(self, target: str, data: str) -> XmlProcessingInstruction: ...
    @typing.overload
    def create_text_node(self, data: str) -> XmlText: ...
    @typing.overload
    def get_element_by_id(self, element_id: str) -> XmlElement: ...
    @typing.overload
    def get_elements_by_tag_name(self, tag_name: str) -> XmlNodeList: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def import_node(self, node: IXmlNode, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    @staticmethod
    def load_from_file_async(file: winsdk.windows.storage.IStorageFile) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    @staticmethod
    def load_from_file_async(file: winsdk.windows.storage.IStorageFile, load_settings: XmlLoadSettings) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    @staticmethod
    def load_from_uri_async(uri: winsdk.windows.foundation.Uri) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    @staticmethod
    def load_from_uri_async(uri: winsdk.windows.foundation.Uri, load_settings: XmlLoadSettings) -> winsdk.windows.foundation.IAsyncOperation[XmlDocument]: ...
    @typing.overload
    def load_xml(self, xml: str) -> None: ...
    @typing.overload
    def load_xml(self, xml: str, load_settings: XmlLoadSettings) -> None: ...
    @typing.overload
    def load_xml_from_buffer(self, buffer: winsdk.windows.storage.streams.IBuffer) -> None: ...
    @typing.overload
    def load_xml_from_buffer(self, buffer: winsdk.windows.storage.streams.IBuffer, load_settings: XmlLoadSettings) -> None: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def save_to_file_async(self, file: winsdk.windows.storage.IStorageFile) -> winsdk.windows.foundation.IAsyncAction: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class XmlDocumentFragment(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    parent_node: IXmlNode
    child_nodes: XmlNodeList
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDocumentFragment: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class XmlDocumentType(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    entities: XmlNamedNodeMap
    name: str
    notations: XmlNamedNodeMap
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDocumentType: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class XmlDomImplementation(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlDomImplementation: ...
    @typing.overload
    def has_feature(self, feature: str, version: _winrt.Object) -> _winrt.Boolean: ...

class XmlElement(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    tag_name: str
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    next_sibling: IXmlNode
    namespace_uri: _winrt.Object
    node_type: NodeType
    node_name: str
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    parent_node: IXmlNode
    child_nodes: XmlNodeList
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlElement: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_attribute(self, attribute_name: str) -> str: ...
    @typing.overload
    def get_attribute_n_s(self, namespace_uri: _winrt.Object, local_name: str) -> str: ...
    @typing.overload
    def get_attribute_node(self, attribute_name: str) -> XmlAttribute: ...
    @typing.overload
    def get_attribute_node_n_s(self, namespace_uri: _winrt.Object, local_name: str) -> XmlAttribute: ...
    @typing.overload
    def get_elements_by_tag_name(self, tag_name: str) -> XmlNodeList: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_attribute(self, attribute_name: str) -> None: ...
    @typing.overload
    def remove_attribute_n_s(self, namespace_uri: _winrt.Object, local_name: str) -> None: ...
    @typing.overload
    def remove_attribute_node(self, attribute_node: XmlAttribute) -> XmlAttribute: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def set_attribute(self, attribute_name: str, attribute_value: str) -> None: ...
    @typing.overload
    def set_attribute_n_s(self, namespace_uri: _winrt.Object, qualified_name: str, value: str) -> None: ...
    @typing.overload
    def set_attribute_node(self, new_attribute: XmlAttribute) -> XmlAttribute: ...
    @typing.overload
    def set_attribute_node_n_s(self, new_attribute: XmlAttribute) -> XmlAttribute: ...

class XmlEntityReference(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    parent_node: IXmlNode
    child_nodes: XmlNodeList
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlEntityReference: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class XmlLoadSettings(_winrt.Object):
    validate_on_parse: _winrt.Boolean
    resolve_externals: _winrt.Boolean
    prohibit_dtd: _winrt.Boolean
    max_element_depth: _winrt.UInt32
    element_content_white_space: _winrt.Boolean
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlLoadSettings: ...
    @typing.overload
    def __init__(self) -> None: ...

class XmlNamedNodeMap(winsdk.windows.foundation.collections.IVectorView[IXmlNode], winsdk.windows.foundation.collections.IIterable[IXmlNode], _winrt.Object):
    length: _winrt.UInt32
    size: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlNamedNodeMap: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[IXmlNode]: ...
    @typing.overload
    def get_at(self, index: _winrt.UInt32) -> IXmlNode: ...
    @typing.overload
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IXmlNode]]: ...
    @typing.overload
    def get_named_item(self, name: str) -> IXmlNode: ...
    @typing.overload
    def get_named_item_n_s(self, namespace_uri: _winrt.Object, name: str) -> IXmlNode: ...
    @typing.overload
    def index_of(self, value: IXmlNode) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...
    @typing.overload
    def item(self, index: _winrt.UInt32) -> IXmlNode: ...
    @typing.overload
    def remove_named_item(self, name: str) -> IXmlNode: ...
    @typing.overload
    def remove_named_item_n_s(self, namespace_uri: _winrt.Object, name: str) -> IXmlNode: ...
    @typing.overload
    def set_named_item(self, node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def set_named_item_n_s(self, node: IXmlNode) -> IXmlNode: ...

class XmlNodeList(winsdk.windows.foundation.collections.IVectorView[IXmlNode], winsdk.windows.foundation.collections.IIterable[IXmlNode], _winrt.Object):
    length: _winrt.UInt32
    size: _winrt.UInt32
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def first(self) -> winsdk.windows.foundation.collections.IIterator[IXmlNode]: ...
    @typing.overload
    def get_at(self, index: _winrt.UInt32) -> IXmlNode: ...
    @typing.overload
    def get_many(self, start_index: _winrt.UInt32, items_size: _winrt.UInt32) -> typing.Tuple[_winrt.UInt32, typing.List[IXmlNode]]: ...
    @typing.overload
    def index_of(self, value: IXmlNode) -> typing.Tuple[_winrt.Boolean, _winrt.UInt32]: ...
    @typing.overload
    def item(self, index: _winrt.UInt32) -> IXmlNode: ...

class XmlProcessingInstruction(IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    prefix: _winrt.Object
    node_value: _winrt.Object
    attributes: XmlNamedNodeMap
    first_child: IXmlNode
    child_nodes: XmlNodeList
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    owner_document: XmlDocument
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    data: str
    target: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlProcessingInstruction: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class XmlText(IXmlText, IXmlCharacterData, IXmlNode, IXmlNodeSerializer, IXmlNodeSelector, _winrt.Object):
    data: str
    length: _winrt.UInt32
    prefix: _winrt.Object
    node_value: _winrt.Object
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    attributes: XmlNamedNodeMap
    owner_document: XmlDocument
    child_nodes: XmlNodeList
    parent_node: IXmlNode
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> XmlText: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def append_data(self, data: str) -> None: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    @typing.overload
    def get_xml(self) -> str: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def split_text(self, offset: _winrt.UInt32) -> IXmlText: ...
    @typing.overload
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...

class IXmlCharacterData(IXmlNode, IXmlNodeSelector, IXmlNodeSerializer, _winrt.Object):
    data: str
    length: _winrt.UInt32
    attributes: XmlNamedNodeMap
    child_nodes: XmlNodeList
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    node_value: _winrt.Object
    owner_document: XmlDocument
    parent_node: IXmlNode
    prefix: _winrt.Object
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlCharacterData: ...
    @typing.overload
    def append_data(self, data: str) -> None: ...
    @typing.overload
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    @typing.overload
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...

class IXmlNode(IXmlNodeSelector, IXmlNodeSerializer, _winrt.Object):
    attributes: XmlNamedNodeMap
    child_nodes: XmlNodeList
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    node_value: _winrt.Object
    owner_document: XmlDocument
    parent_node: IXmlNode
    prefix: _winrt.Object
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...

class IXmlNodeSelector(_winrt.Object):
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlNodeSelector: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...

class IXmlNodeSerializer(_winrt.Object):
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlNodeSerializer: ...
    @typing.overload
    def get_xml(self) -> str: ...

class IXmlText(IXmlCharacterData, IXmlNode, IXmlNodeSelector, IXmlNodeSerializer, _winrt.Object):
    data: str
    length: _winrt.UInt32
    attributes: XmlNamedNodeMap
    child_nodes: XmlNodeList
    first_child: IXmlNode
    last_child: IXmlNode
    local_name: _winrt.Object
    namespace_uri: _winrt.Object
    next_sibling: IXmlNode
    node_name: str
    node_type: NodeType
    node_value: _winrt.Object
    owner_document: XmlDocument
    parent_node: IXmlNode
    prefix: _winrt.Object
    previous_sibling: IXmlNode
    inner_text: str
    @staticmethod
    def _from(obj: _winrt.Object) -> IXmlText: ...
    @typing.overload
    def split_text(self, offset: _winrt.UInt32) -> IXmlText: ...
    @typing.overload
    def append_data(self, data: str) -> None: ...
    @typing.overload
    def delete_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> None: ...
    @typing.overload
    def insert_data(self, offset: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def replace_data(self, offset: _winrt.UInt32, count: _winrt.UInt32, data: str) -> None: ...
    @typing.overload
    def substring_data(self, offset: _winrt.UInt32, count: _winrt.UInt32) -> str: ...
    @typing.overload
    def append_child(self, new_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def clone_node(self, deep: _winrt.Boolean) -> IXmlNode: ...
    @typing.overload
    def has_child_nodes(self) -> _winrt.Boolean: ...
    @typing.overload
    def insert_before(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def normalize(self) -> None: ...
    @typing.overload
    def remove_child(self, child_node: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def replace_child(self, new_child: IXmlNode, reference_child: IXmlNode) -> IXmlNode: ...
    @typing.overload
    def select_nodes(self, xpath: str) -> XmlNodeList: ...
    @typing.overload
    def select_nodes_n_s(self, xpath: str, namespaces: _winrt.Object) -> XmlNodeList: ...
    @typing.overload
    def select_single_node(self, xpath: str) -> IXmlNode: ...
    @typing.overload
    def select_single_node_n_s(self, xpath: str, namespaces: _winrt.Object) -> IXmlNode: ...
    @typing.overload
    def get_xml(self) -> str: ...

