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

#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.Streams.h")
#include "py.Windows.Storage.Streams.h"
#endif

#include <winrt/Windows.Devices.Sms.h>

namespace py::proj::Windows::Devices::Sms
{}

namespace py::impl::Windows::Devices::Sms
{}

namespace py::wrapper::Windows::Devices::Sms
{
    using SmsAppMessage = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsAppMessage>;
    using SmsBroadcastMessage = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsBroadcastMessage>;
    using SmsDevice2 = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsDevice2>;
    using SmsFilterRule = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsFilterRule>;
    using SmsFilterRules = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsFilterRules>;
    using SmsMessageReceivedTriggerDetails = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsMessageReceivedTriggerDetails>;
    using SmsMessageRegistration = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsMessageRegistration>;
    using SmsSendMessageResult = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsSendMessageResult>;
    using SmsStatusMessage = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsStatusMessage>;
    using SmsTextMessage2 = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsTextMessage2>;
    using SmsVoicemailMessage = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsVoicemailMessage>;
    using SmsWapMessage = py::winrt_wrapper<winrt::Windows::Devices::Sms::SmsWapMessage>;
    using ISmsMessageBase = py::winrt_wrapper<winrt::Windows::Devices::Sms::ISmsMessageBase>;
    using SmsEncodedLength = py::winrt_struct_wrapper<winrt::Windows::Devices::Sms::SmsEncodedLength>;
}

namespace py
{
    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsAppMessage>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsBroadcastMessage>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsDevice2>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsFilterRule>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsFilterRules>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsMessageReceivedTriggerDetails>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsMessageRegistration>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsSendMessageResult>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsStatusMessage>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsTextMessage2>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsVoicemailMessage>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsWapMessage>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::ISmsMessageBase>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct winrt_type<winrt::Windows::Devices::Sms::SmsEncodedLength>
    {
        static PyTypeObject* python_type;
        static PyTypeObject* get_python_type() { return python_type; }
    };

    template<>
    struct converter<winrt::Windows::Devices::Sms::SmsEncodedLength>
    {
        static PyObject* convert(winrt::Windows::Devices::Sms::SmsEncodedLength instance) noexcept;
        static winrt::Windows::Devices::Sms::SmsEncodedLength convert_to(PyObject* obj);
    };

}
