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

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

#if __has_include("py.Windows.Security.Credentials.h")
#include "py.Windows.Security.Credentials.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.Media.MediaProperties.h>
#include <winrt/Windows.Security.Credentials.h>
#include <winrt/Windows.Storage.Streams.h>

#include <winrt/Windows.ApplicationModel.Chat.h>

namespace py::proj::Windows::ApplicationModel::Chat
{}

namespace py::impl::Windows::ApplicationModel::Chat
{}

namespace py::wrapper::Windows::ApplicationModel::Chat
{
    using ChatCapabilities = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatCapabilities>;
    using ChatCapabilitiesManager = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatCapabilitiesManager>;
    using ChatConversation = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatConversation>;
    using ChatConversationReader = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatConversationReader>;
    using ChatConversationThreadingInfo = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatConversationThreadingInfo>;
    using ChatMessage = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessage>;
    using ChatMessageAttachment = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageAttachment>;
    using ChatMessageBlocking = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageBlocking>;
    using ChatMessageChange = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageChange>;
    using ChatMessageChangeReader = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageChangeReader>;
    using ChatMessageChangeTracker = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageChangeTracker>;
    using ChatMessageChangedDeferral = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageChangedDeferral>;
    using ChatMessageChangedEventArgs = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageChangedEventArgs>;
    using ChatMessageManager = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageManager>;
    using ChatMessageNotificationTriggerDetails = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageNotificationTriggerDetails>;
    using ChatMessageReader = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageReader>;
    using ChatMessageStore = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageStore>;
    using ChatMessageStoreChangedEventArgs = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageStoreChangedEventArgs>;
    using ChatMessageTransport = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageTransport>;
    using ChatMessageTransportConfiguration = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageTransportConfiguration>;
    using ChatMessageValidationResult = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatMessageValidationResult>;
    using ChatQueryOptions = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatQueryOptions>;
    using ChatRecipientDeliveryInfo = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatRecipientDeliveryInfo>;
    using ChatSearchReader = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatSearchReader>;
    using ChatSyncConfiguration = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatSyncConfiguration>;
    using ChatSyncManager = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::ChatSyncManager>;
    using RcsEndUserMessage = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessage>;
    using RcsEndUserMessageAction = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageAction>;
    using RcsEndUserMessageAvailableEventArgs = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageAvailableEventArgs>;
    using RcsEndUserMessageAvailableTriggerDetails = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageAvailableTriggerDetails>;
    using RcsEndUserMessageManager = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageManager>;
    using RcsManager = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsManager>;
    using RcsServiceKindSupportedChangedEventArgs = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsServiceKindSupportedChangedEventArgs>;
    using RcsTransport = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsTransport>;
    using RcsTransportConfiguration = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RcsTransportConfiguration>;
    using RemoteParticipantComposingChangedEventArgs = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::RemoteParticipantComposingChangedEventArgs>;
    using IChatItem = py::winrt_wrapper<winrt::Windows::ApplicationModel::Chat::IChatItem>;
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatConversationThreadingKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatItemKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatMessageChangeType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatMessageKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatMessageOperatorKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatMessageStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatMessageTransportKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatMessageValidationStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatRestoreHistorySpan> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatStoreChangedEventKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatTransportErrorCodeCategory> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::ChatTransportInterpretedErrorCode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::ApplicationModel::Chat::RcsServiceKind> = "i";


    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatConversationThreadingKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatItemKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatMessageChangeType>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatMessageKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatMessageOperatorKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatMessageStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatMessageTransportKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatMessageValidationStatus>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatRestoreHistorySpan>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatStoreChangedEventKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatTransportErrorCodeCategory>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::ChatTransportInterpretedErrorCode>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct py_type<winrt::Windows::ApplicationModel::Chat::RcsServiceKind>
    {
        static PyObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatCapabilities>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatCapabilitiesManager>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatConversation>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatConversationReader>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatConversationThreadingInfo>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessage>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageAttachment>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageBlocking>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageChange>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageChangeReader>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageChangeTracker>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageChangedDeferral>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageChangedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageManager>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageNotificationTriggerDetails>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageReader>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageStore>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageStoreChangedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageTransport>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageTransportConfiguration>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatMessageValidationResult>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatQueryOptions>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatRecipientDeliveryInfo>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatSearchReader>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatSyncConfiguration>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::ChatSyncManager>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessage>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageAction>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageAvailableEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageAvailableTriggerDetails>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsEndUserMessageManager>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsManager>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsServiceKindSupportedChangedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsTransport>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RcsTransportConfiguration>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::RemoteParticipantComposingChangedEventArgs>
    {
        static PyTypeObject* get_python_type() noexcept;
    };

    template<>
    struct winrt_type<winrt::Windows::ApplicationModel::Chat::IChatItem>
    {
        static PyTypeObject* get_python_type() noexcept;
    };
}
