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

#pragma once

#include "pybase.h"

#if __has_include("py.Windows.Foundation.h")
#include "py.Windows.Foundation.h"
#endif

#if __has_include("py.Windows.Foundation.Collections.h")
#include "py.Windows.Foundation.Collections.h"
#endif

#if __has_include("py.Windows.Storage.h")
#include "py.Windows.Storage.h"
#endif

#if __has_include("py.Windows.Storage.Streams.h")
#include "py.Windows.Storage.Streams.h"
#endif

#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Storage.h>
#include <winrt/Windows.Storage.Streams.h>

#include <winrt/Windows.Data.Xml.Dom.h>

namespace py::proj::Windows::Data::Xml::Dom
{}

namespace py::impl::Windows::Data::Xml::Dom
{}

namespace py::wrapper::Windows::Data::Xml::Dom
{
    using DtdEntity = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::DtdEntity>;
    using DtdNotation = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::DtdNotation>;
    using XmlAttribute = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlAttribute>;
    using XmlCDataSection = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlCDataSection>;
    using XmlComment = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlComment>;
    using XmlDocument = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlDocument>;
    using XmlDocumentFragment = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlDocumentFragment>;
    using XmlDocumentType = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlDocumentType>;
    using XmlDomImplementation = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlDomImplementation>;
    using XmlElement = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlElement>;
    using XmlEntityReference = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlEntityReference>;
    using XmlLoadSettings = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlLoadSettings>;
    using XmlNamedNodeMap = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlNamedNodeMap>;
    using XmlNodeList = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlNodeList>;
    using XmlProcessingInstruction = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlProcessingInstruction>;
    using XmlText = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::XmlText>;
    using IXmlCharacterData = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::IXmlCharacterData>;
    using IXmlNode = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::IXmlNode>;
    using IXmlNodeSelector = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::IXmlNodeSelector>;
    using IXmlNodeSerializer = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::IXmlNodeSerializer>;
    using IXmlText = py::winrt_wrapper<winrt::Windows::Data::Xml::Dom::IXmlText>;
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Data::Xml::Dom::NodeType> = "i";


    template<>
    struct py_type<winrt::Windows::Data::Xml::Dom::NodeType>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::DtdEntity>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::DtdNotation>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlAttribute>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlCDataSection>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlComment>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlDocument>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlDocumentFragment>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlDocumentType>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlDomImplementation>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlElement>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlEntityReference>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlLoadSettings>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlNamedNodeMap>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlNodeList>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlProcessingInstruction>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::XmlText>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::IXmlCharacterData>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::IXmlNode>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::IXmlNodeSelector>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::IXmlNodeSerializer>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::Data::Xml::Dom::IXmlText>
    {
        static PyTypeObject* get_python_type() noexcept;
    };
}
