// WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.1

#pragma once

#include "pybase.h"
static_assert(winrt::check_version(PYWINRT_VERSION, "3.2.1"), "Mismatched Py/WinRT headers.");
#include <winrt/Windows.ApplicationModel.Background.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Networking.h>
#include <winrt/Windows.Networking.Connectivity.h>
#include <winrt/Windows.Security.Credentials.h>
#include <winrt/Windows.Security.Cryptography.Certificates.h>
#include <winrt/Windows.Storage.Streams.h>
#include <winrt/Windows.Web.h>

#include <winrt/Windows.Networking.Sockets.h>

namespace py::proj::Windows::Networking::Sockets
{
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::ControlChannelTriggerResetReason> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::ControlChannelTriggerResourceType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::ControlChannelTriggerStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::MessageWebSocketReceiveMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketActivityConnectedStandbyAction> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketActivityKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketActivityTriggerReason> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketErrorStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketMessageType> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketProtectionLevel> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketQualityOfService> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::SocketSslErrorSeverity> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::BandwidthStatistics> = "T{Q:outbound_bits_per_second:Q:inbound_bits_per_second:Q:outbound_bits_per_second_instability:Q:inbound_bits_per_second_instability:?:outbound_bandwidth_peaked:?:inbound_bandwidth_peaked:}";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Networking::Sockets::RoundTripTimeStatistics> = "T{I:variance:I:max:I:min:I:sum:}";


    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ControlChannelTriggerResetReason>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ControlChannelTriggerResetReason";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ControlChannelTriggerResetReason";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ControlChannelTriggerResourceType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ControlChannelTriggerResourceType";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ControlChannelTriggerResourceType";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ControlChannelTriggerStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ControlChannelTriggerStatus";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ControlChannelTriggerStatus";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::MessageWebSocketReceiveMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.MessageWebSocketReceiveMode";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "MessageWebSocketReceiveMode";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketActivityConnectedStandbyAction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketActivityConnectedStandbyAction";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketActivityConnectedStandbyAction";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketActivityKind>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketActivityKind";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketActivityKind";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketActivityTriggerReason>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketActivityTriggerReason";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketActivityTriggerReason";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketErrorStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketErrorStatus";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketErrorStatus";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketMessageType>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketMessageType";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketMessageType";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketProtectionLevel>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketProtectionLevel";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketProtectionLevel";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketQualityOfService>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketQualityOfService";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketQualityOfService";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketSslErrorSeverity>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketSslErrorSeverity";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketSslErrorSeverity";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ControlChannelTrigger>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ControlChannelTrigger";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ControlChannelTrigger";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::DatagramSocket>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.DatagramSocket";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "DatagramSocket";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::DatagramSocketControl>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.DatagramSocketControl";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "DatagramSocketControl";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::DatagramSocketInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.DatagramSocketInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "DatagramSocketInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::DatagramSocketMessageReceivedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.DatagramSocketMessageReceivedEventArgs";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "DatagramSocketMessageReceivedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::MessageWebSocket>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.MessageWebSocket";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "MessageWebSocket";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::MessageWebSocketControl>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.MessageWebSocketControl";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "MessageWebSocketControl";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::MessageWebSocketInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.MessageWebSocketInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "MessageWebSocketInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::MessageWebSocketMessageReceivedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.MessageWebSocketMessageReceivedEventArgs";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "MessageWebSocketMessageReceivedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ServerMessageWebSocket>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ServerMessageWebSocket";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ServerMessageWebSocket";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ServerMessageWebSocketControl>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ServerMessageWebSocketControl";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ServerMessageWebSocketControl";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ServerMessageWebSocketInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ServerMessageWebSocketInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ServerMessageWebSocketInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ServerStreamWebSocket>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ServerStreamWebSocket";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ServerStreamWebSocket";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::ServerStreamWebSocketInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.ServerStreamWebSocketInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "ServerStreamWebSocketInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketActivityContext>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketActivityContext";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketActivityContext";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketActivityInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketActivityInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketActivityInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketActivityTriggerDetails>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketActivityTriggerDetails";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketActivityTriggerDetails";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::SocketError>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.SocketError";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "SocketError";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamSocket>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamSocket";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamSocket";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamSocketControl>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamSocketControl";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamSocketControl";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamSocketInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamSocketInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamSocketInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamSocketListener>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamSocketListener";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamSocketListener";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamSocketListenerConnectionReceivedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamSocketListenerConnectionReceivedEventArgs";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamSocketListenerConnectionReceivedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamSocketListenerControl>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamSocketListenerControl";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamSocketListenerControl";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamSocketListenerInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamSocketListenerInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamSocketListenerInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamWebSocket>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamWebSocket";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamWebSocket";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamWebSocketControl>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamWebSocketControl";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamWebSocketControl";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::StreamWebSocketInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.StreamWebSocketInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "StreamWebSocketInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::WebSocketClosedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.WebSocketClosedEventArgs";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "WebSocketClosedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::WebSocketError>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.WebSocketError";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "WebSocketError";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::WebSocketKeepAlive>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.WebSocketKeepAlive";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "WebSocketKeepAlive";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::WebSocketServerCustomValidationRequestedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.WebSocketServerCustomValidationRequestedEventArgs";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "WebSocketServerCustomValidationRequestedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::IControlChannelTriggerEventDetails>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets._IControlChannelTriggerEventDetails";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "_IControlChannelTriggerEventDetails";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::IControlChannelTriggerResetEventDetails>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets._IControlChannelTriggerResetEventDetails";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "_IControlChannelTriggerResetEventDetails";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::IWebSocket>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets._IWebSocket";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "_IWebSocket";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::IWebSocketControl>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets._IWebSocketControl";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "_IWebSocketControl";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::IWebSocketControl2>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets._IWebSocketControl2";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "_IWebSocketControl2";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::IWebSocketInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets._IWebSocketInformation";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "_IWebSocketInformation";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::IWebSocketInformation2>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets._IWebSocketInformation2";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "_IWebSocketInformation2";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::BandwidthStatistics>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_networking_sockets.BandwidthStatistics_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.BandwidthStatistics";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "BandwidthStatistics";
    };

    template<>
    struct py_type<winrt::Windows::Networking::Sockets::RoundTripTimeStatistics>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_networking_sockets.RoundTripTimeStatistics_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.networking.sockets.RoundTripTimeStatistics";
        static constexpr const char* module_name = "winrt.windows.networking.sockets";
        static constexpr const char* type_name = "RoundTripTimeStatistics";
    };
}

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

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

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

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

#if __has_include("py.Windows.Security.Cryptography.Certificates.h")
#include "py.Windows.Security.Cryptography.Certificates.h"
#endif

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

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

namespace py::impl::Windows::Networking::Sockets
{
}

namespace py::wrapper::Windows::Networking::Sockets
{
    using ControlChannelTrigger = py::winrt_wrapper<winrt::Windows::Networking::Sockets::ControlChannelTrigger>;
    using DatagramSocket = py::winrt_wrapper<winrt::Windows::Networking::Sockets::DatagramSocket>;
    using DatagramSocketControl = py::winrt_wrapper<winrt::Windows::Networking::Sockets::DatagramSocketControl>;
    using DatagramSocketInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::DatagramSocketInformation>;
    using DatagramSocketMessageReceivedEventArgs = py::winrt_wrapper<winrt::Windows::Networking::Sockets::DatagramSocketMessageReceivedEventArgs>;
    using MessageWebSocket = py::winrt_wrapper<winrt::Windows::Networking::Sockets::MessageWebSocket>;
    using MessageWebSocketControl = py::winrt_wrapper<winrt::Windows::Networking::Sockets::MessageWebSocketControl>;
    using MessageWebSocketInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::MessageWebSocketInformation>;
    using MessageWebSocketMessageReceivedEventArgs = py::winrt_wrapper<winrt::Windows::Networking::Sockets::MessageWebSocketMessageReceivedEventArgs>;
    using ServerMessageWebSocket = py::winrt_wrapper<winrt::Windows::Networking::Sockets::ServerMessageWebSocket>;
    using ServerMessageWebSocketControl = py::winrt_wrapper<winrt::Windows::Networking::Sockets::ServerMessageWebSocketControl>;
    using ServerMessageWebSocketInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::ServerMessageWebSocketInformation>;
    using ServerStreamWebSocket = py::winrt_wrapper<winrt::Windows::Networking::Sockets::ServerStreamWebSocket>;
    using ServerStreamWebSocketInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::ServerStreamWebSocketInformation>;
    using SocketActivityContext = py::winrt_wrapper<winrt::Windows::Networking::Sockets::SocketActivityContext>;
    using SocketActivityInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::SocketActivityInformation>;
    using SocketActivityTriggerDetails = py::winrt_wrapper<winrt::Windows::Networking::Sockets::SocketActivityTriggerDetails>;
    using SocketError = py::winrt_wrapper<winrt::Windows::Networking::Sockets::SocketError>;
    using StreamSocket = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamSocket>;
    using StreamSocketControl = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamSocketControl>;
    using StreamSocketInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamSocketInformation>;
    using StreamSocketListener = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamSocketListener>;
    using StreamSocketListenerConnectionReceivedEventArgs = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamSocketListenerConnectionReceivedEventArgs>;
    using StreamSocketListenerControl = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamSocketListenerControl>;
    using StreamSocketListenerInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamSocketListenerInformation>;
    using StreamWebSocket = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamWebSocket>;
    using StreamWebSocketControl = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamWebSocketControl>;
    using StreamWebSocketInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::StreamWebSocketInformation>;
    using WebSocketClosedEventArgs = py::winrt_wrapper<winrt::Windows::Networking::Sockets::WebSocketClosedEventArgs>;
    using WebSocketError = py::winrt_wrapper<winrt::Windows::Networking::Sockets::WebSocketError>;
    using WebSocketKeepAlive = py::winrt_wrapper<winrt::Windows::Networking::Sockets::WebSocketKeepAlive>;
    using WebSocketServerCustomValidationRequestedEventArgs = py::winrt_wrapper<winrt::Windows::Networking::Sockets::WebSocketServerCustomValidationRequestedEventArgs>;
    using IControlChannelTriggerEventDetails = py::winrt_wrapper<winrt::Windows::Networking::Sockets::IControlChannelTriggerEventDetails>;
    using IControlChannelTriggerResetEventDetails = py::winrt_wrapper<winrt::Windows::Networking::Sockets::IControlChannelTriggerResetEventDetails>;
    using IWebSocket = py::winrt_wrapper<winrt::Windows::Networking::Sockets::IWebSocket>;
    using IWebSocketControl = py::winrt_wrapper<winrt::Windows::Networking::Sockets::IWebSocketControl>;
    using IWebSocketControl2 = py::winrt_wrapper<winrt::Windows::Networking::Sockets::IWebSocketControl2>;
    using IWebSocketInformation = py::winrt_wrapper<winrt::Windows::Networking::Sockets::IWebSocketInformation>;
    using IWebSocketInformation2 = py::winrt_wrapper<winrt::Windows::Networking::Sockets::IWebSocketInformation2>;
    using BandwidthStatistics = py::winrt_struct_wrapper<winrt::Windows::Networking::Sockets::BandwidthStatistics>;
    using RoundTripTimeStatistics = py::winrt_struct_wrapper<winrt::Windows::Networking::Sockets::RoundTripTimeStatistics>;
}

namespace py
{
}
