// 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.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Foundation.Numerics.h>
#include <winrt/Windows.Perception.h>
#include <winrt/Windows.Storage.Streams.h>
#include <winrt/Windows.System.RemoteSystems.h>

#include <winrt/Windows.Perception.Spatial.h>

namespace py::proj::Windows::Perception::Spatial
{
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialAnchorExportPurpose> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialEntityWatcherStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialLocatability> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialLookDirectionRange> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialMovementRange> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialPerceptionAccessStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialBoundingBox> = "T{T{f:x:f:y:f:z:}:center:T{f:x:f:y:f:z:}:extents:}";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialBoundingFrustum> = "T{T{T{f:x:f:y:f:z:}:normal:f:d:}:near:T{T{f:x:f:y:f:z:}:normal:f:d:}:far:T{T{f:x:f:y:f:z:}:normal:f:d:}:right:T{T{f:x:f:y:f:z:}:normal:f:d:}:left:T{T{f:x:f:y:f:z:}:normal:f:d:}:top:T{T{f:x:f:y:f:z:}:normal:f:d:}:bottom:}";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialBoundingOrientedBox> = "T{T{f:x:f:y:f:z:}:center:T{f:x:f:y:f:z:}:extents:T{f:x:f:y:f:z:f:w:}:orientation:}";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialBoundingSphere> = "T{T{f:x:f:y:f:z:}:center:f:radius:}";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::Spatial::SpatialRay> = "T{T{f:x:f:y:f:z:}:origin:T{f:x:f:y:f:z:}:direction:}";


    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchorExportPurpose>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchorExportPurpose";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchorExportPurpose";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialEntityWatcherStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialEntityWatcherStatus";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialEntityWatcherStatus";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialLocatability>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialLocatability";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialLocatability";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialLookDirectionRange>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialLookDirectionRange";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialLookDirectionRange";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialMovementRange>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialMovementRange";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialMovementRange";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialPerceptionAccessStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialPerceptionAccessStatus";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialPerceptionAccessStatus";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchor>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchor";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchor";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchorExportSufficiency>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchorExportSufficiency";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchorExportSufficiency";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchorExporter>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchorExporter";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchorExporter";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchorManager>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchorManager";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchorManager";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchorRawCoordinateSystemAdjustedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchorRawCoordinateSystemAdjustedEventArgs";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchorRawCoordinateSystemAdjustedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchorStore>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchorStore";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchorStore";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialAnchorTransferManager>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialAnchorTransferManager";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialAnchorTransferManager";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialBoundingVolume>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialBoundingVolume";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialBoundingVolume";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialCoordinateSystem>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialCoordinateSystem";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialCoordinateSystem";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialEntity>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialEntity";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialEntity";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialEntityAddedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialEntityAddedEventArgs";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialEntityAddedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialEntityRemovedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialEntityRemovedEventArgs";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialEntityRemovedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialEntityStore>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialEntityStore";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialEntityStore";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialEntityUpdatedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialEntityUpdatedEventArgs";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialEntityUpdatedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialEntityWatcher>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialEntityWatcher";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialEntityWatcher";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialLocation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialLocation";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialLocation";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialLocator>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialLocator";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialLocator";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialLocatorAttachedFrameOfReference>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialLocatorAttachedFrameOfReference";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialLocatorAttachedFrameOfReference";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialLocatorPositionalTrackingDeactivatingEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialLocatorPositionalTrackingDeactivatingEventArgs";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialLocatorPositionalTrackingDeactivatingEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialStageFrameOfReference>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialStageFrameOfReference";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialStageFrameOfReference";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialStationaryFrameOfReference";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialStationaryFrameOfReference";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialBoundingBox>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_perception_spatial.SpatialBoundingBox_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialBoundingBox";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialBoundingBox";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialBoundingFrustum>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_perception_spatial.SpatialBoundingFrustum_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialBoundingFrustum";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialBoundingFrustum";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialBoundingOrientedBox>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_perception_spatial.SpatialBoundingOrientedBox_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialBoundingOrientedBox";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialBoundingOrientedBox";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialBoundingSphere>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_perception_spatial.SpatialBoundingSphere_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialBoundingSphere";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialBoundingSphere";
    };

    template<>
    struct py_type<winrt::Windows::Perception::Spatial::SpatialRay>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_perception_spatial.SpatialRay_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.perception.spatial.SpatialRay";
        static constexpr const char* module_name = "winrt.windows.perception.spatial";
        static constexpr const char* type_name = "SpatialRay";
    };
}

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

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

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

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

namespace py::impl::Windows::Perception::Spatial
{
}

namespace py::wrapper::Windows::Perception::Spatial
{
    using SpatialAnchor = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialAnchor>;
    using SpatialAnchorExportSufficiency = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialAnchorExportSufficiency>;
    using SpatialAnchorExporter = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialAnchorExporter>;
    using SpatialAnchorManager = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialAnchorManager>;
    using SpatialAnchorRawCoordinateSystemAdjustedEventArgs = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialAnchorRawCoordinateSystemAdjustedEventArgs>;
    using SpatialAnchorStore = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialAnchorStore>;
    using SpatialAnchorTransferManager = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialAnchorTransferManager>;
    using SpatialBoundingVolume = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialBoundingVolume>;
    using SpatialCoordinateSystem = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialCoordinateSystem>;
    using SpatialEntity = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialEntity>;
    using SpatialEntityAddedEventArgs = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialEntityAddedEventArgs>;
    using SpatialEntityRemovedEventArgs = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialEntityRemovedEventArgs>;
    using SpatialEntityStore = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialEntityStore>;
    using SpatialEntityUpdatedEventArgs = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialEntityUpdatedEventArgs>;
    using SpatialEntityWatcher = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialEntityWatcher>;
    using SpatialLocation = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialLocation>;
    using SpatialLocator = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialLocator>;
    using SpatialLocatorAttachedFrameOfReference = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialLocatorAttachedFrameOfReference>;
    using SpatialLocatorPositionalTrackingDeactivatingEventArgs = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialLocatorPositionalTrackingDeactivatingEventArgs>;
    using SpatialStageFrameOfReference = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialStageFrameOfReference>;
    using SpatialStationaryFrameOfReference = py::winrt_wrapper<winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference>;
    using SpatialBoundingBox = py::winrt_struct_wrapper<winrt::Windows::Perception::Spatial::SpatialBoundingBox>;
    using SpatialBoundingFrustum = py::winrt_struct_wrapper<winrt::Windows::Perception::Spatial::SpatialBoundingFrustum>;
    using SpatialBoundingOrientedBox = py::winrt_struct_wrapper<winrt::Windows::Perception::Spatial::SpatialBoundingOrientedBox>;
    using SpatialBoundingSphere = py::winrt_struct_wrapper<winrt::Windows::Perception::Spatial::SpatialBoundingSphere>;
    using SpatialRay = py::winrt_struct_wrapper<winrt::Windows::Perception::Spatial::SpatialRay>;
}

namespace py
{
}
