// 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.Graphics.h>
#include <winrt/Windows.Graphics.DirectX.h>
#include <winrt/Windows.Graphics.Effects.h>
#include <winrt/Windows.System.h>
#include <winrt/Windows.UI.h>
#include <winrt/Windows.UI.Core.h>

#include <winrt/Windows.UI.Composition.h>

namespace py::proj::Windows::UI::Composition
{
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::AnimationControllerProgressBehavior> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::AnimationDelayBehavior> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::AnimationDirection> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::AnimationIterationBehavior> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::AnimationPropertyAccessMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::AnimationStopBehavior> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionBackfaceVisibility> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionBatchTypes> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionBitmapInterpolationMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionBorderMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionColorSpace> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionCompositeMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionDropShadowSourcePolicy> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionEasingFunctionMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionEffectFactoryLoadStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionGetValueStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionGradientExtendMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionMappingMode> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionStretch> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionStrokeCap> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::CompositionStrokeLineJoin> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::UI::Composition::InkTrailPoint> = "T{T{f:x:f:y:}:point:f:radius:}";


    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationControllerProgressBehavior>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationControllerProgressBehavior";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationControllerProgressBehavior";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationDelayBehavior>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationDelayBehavior";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationDelayBehavior";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationDirection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationDirection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationDirection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationIterationBehavior>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationIterationBehavior";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationIterationBehavior";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationPropertyAccessMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationPropertyAccessMode";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationPropertyAccessMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationStopBehavior>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationStopBehavior";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationStopBehavior";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionBackfaceVisibility>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionBackfaceVisibility";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionBackfaceVisibility";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionBatchTypes>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionBatchTypes";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionBatchTypes";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionBitmapInterpolationMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionBitmapInterpolationMode";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionBitmapInterpolationMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionBorderMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionBorderMode";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionBorderMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionColorSpace>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionColorSpace";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionColorSpace";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionCompositeMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionCompositeMode";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionCompositeMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionDropShadowSourcePolicy>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionDropShadowSourcePolicy";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionDropShadowSourcePolicy";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionEasingFunctionMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionEasingFunctionMode";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionEasingFunctionMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionEffectFactoryLoadStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionEffectFactoryLoadStatus";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionEffectFactoryLoadStatus";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionGetValueStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionGetValueStatus";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionGetValueStatus";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionGradientExtendMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionGradientExtendMode";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionGradientExtendMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionMappingMode>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionMappingMode";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionMappingMode";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionStretch>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionStretch";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionStretch";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionStrokeCap>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionStrokeCap";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionStrokeCap";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionStrokeLineJoin>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionStrokeLineJoin";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionStrokeLineJoin";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AmbientLight>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AmbientLight";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AmbientLight";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationController>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationController";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationController";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::AnimationPropertyInfo>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.AnimationPropertyInfo";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "AnimationPropertyInfo";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::BackEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.BackEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "BackEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::BooleanKeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.BooleanKeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "BooleanKeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::BounceEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.BounceEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "BounceEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::BounceScalarNaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.BounceScalarNaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "BounceScalarNaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::BounceVector2NaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.BounceVector2NaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "BounceVector2NaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::BounceVector3NaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.BounceVector3NaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "BounceVector3NaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CircleEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CircleEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CircleEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ColorKeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ColorKeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ColorKeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionAnimationGroup>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionAnimationGroup";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionAnimationGroup";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionBackdropBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionBackdropBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionBackdropBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionBatchCompletedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionBatchCompletedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionBatchCompletedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionCapabilities>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionCapabilities";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionCapabilities";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionClip>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionClip";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionClip";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionColorBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionColorBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionColorBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionColorGradientStop>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionColorGradientStop";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionColorGradientStop";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionColorGradientStopCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionColorGradientStopCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionColorGradientStopCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionCommitBatch>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionCommitBatch";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionCommitBatch";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionContainerShape>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionContainerShape";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionContainerShape";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionDrawingSurface>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionDrawingSurface";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionDrawingSurface";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionEffectBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionEffectBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionEffectBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionEffectFactory>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionEffectFactory";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionEffectFactory";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionEffectSourceParameter>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionEffectSourceParameter";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionEffectSourceParameter";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionEllipseGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionEllipseGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionEllipseGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionGeometricClip>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionGeometricClip";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionGeometricClip";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionGradientBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionGradientBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionGradientBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionGraphicsDevice>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionGraphicsDevice";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionGraphicsDevice";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionLight>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionLight";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionLight";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionLineGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionLineGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionLineGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionLinearGradientBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionLinearGradientBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionLinearGradientBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionMaskBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionMaskBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionMaskBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionMipmapSurface>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionMipmapSurface";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionMipmapSurface";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionNineGridBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionNineGridBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionNineGridBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionObject>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionObject";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionObject";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionPath>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionPath";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionPath";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionPathGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionPathGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionPathGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionProjectedShadow>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionProjectedShadow";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionProjectedShadow";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionProjectedShadowCaster>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionProjectedShadowCaster";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionProjectedShadowCaster";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionProjectedShadowCasterCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionProjectedShadowCasterCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionProjectedShadowCasterCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionProjectedShadowReceiver>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionProjectedShadowReceiver";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionProjectedShadowReceiver";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionProjectedShadowReceiverUnorderedCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionProjectedShadowReceiverUnorderedCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionProjectedShadowReceiverUnorderedCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionPropertySet>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionPropertySet";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionPropertySet";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionRadialGradientBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionRadialGradientBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionRadialGradientBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionRectangleGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionRectangleGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionRectangleGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionRoundedRectangleGeometry>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionRoundedRectangleGeometry";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionRoundedRectangleGeometry";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionScopedBatch>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionScopedBatch";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionScopedBatch";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionShadow>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionShadow";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionShadow";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionShape>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionShape";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionShape";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionShapeCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionShapeCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionShapeCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionSpriteShape>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionSpriteShape";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionSpriteShape";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionStrokeDashArray>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionStrokeDashArray";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionStrokeDashArray";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionSurfaceBrush>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionSurfaceBrush";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionSurfaceBrush";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionTarget>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionTarget";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionTarget";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionTexture>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionTexture";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionTexture";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionTransform>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionTransform";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionTransform";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionViewBox>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionViewBox";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionViewBox";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionVirtualDrawingSurface>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionVirtualDrawingSurface";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionVirtualDrawingSurface";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CompositionVisualSurface>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CompositionVisualSurface";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CompositionVisualSurface";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::Compositor>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.Compositor";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "Compositor";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ContainerVisual>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ContainerVisual";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ContainerVisual";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::CubicBezierEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.CubicBezierEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "CubicBezierEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::DelegatedInkTrailVisual>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.DelegatedInkTrailVisual";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "DelegatedInkTrailVisual";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::DistantLight>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.DistantLight";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "DistantLight";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::DropShadow>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.DropShadow";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "DropShadow";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ElasticEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ElasticEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ElasticEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ExponentialEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ExponentialEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ExponentialEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ExpressionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ExpressionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ExpressionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ImplicitAnimationCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ImplicitAnimationCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ImplicitAnimationCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::InitialValueExpressionCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.InitialValueExpressionCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "InitialValueExpressionCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::InsetClip>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.InsetClip";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "InsetClip";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::KeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.KeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "KeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::LayerVisual>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.LayerVisual";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "LayerVisual";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::LinearEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.LinearEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "LinearEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::NaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.NaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "NaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::PathKeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.PathKeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "PathKeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::PointLight>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.PointLight";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "PointLight";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::PowerEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.PowerEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "PowerEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::QuaternionKeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.QuaternionKeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "QuaternionKeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::RectangleClip>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.RectangleClip";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "RectangleClip";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::RedirectVisual>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.RedirectVisual";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "RedirectVisual";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::RenderingDeviceReplacedEventArgs>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.RenderingDeviceReplacedEventArgs";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "RenderingDeviceReplacedEventArgs";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ScalarKeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ScalarKeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ScalarKeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ScalarNaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ScalarNaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ScalarNaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ShapeVisual>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.ShapeVisual";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "ShapeVisual";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::SineEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.SineEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "SineEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::SpotLight>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.SpotLight";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "SpotLight";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::SpringScalarNaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.SpringScalarNaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "SpringScalarNaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::SpringVector2NaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.SpringVector2NaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "SpringVector2NaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::SpringVector3NaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.SpringVector3NaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "SpringVector3NaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::SpriteVisual>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.SpriteVisual";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "SpriteVisual";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::StepEasingFunction>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.StepEasingFunction";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "StepEasingFunction";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::Vector2KeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.Vector2KeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "Vector2KeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::Vector2NaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.Vector2NaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "Vector2NaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::Vector3KeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.Vector3KeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "Vector3KeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::Vector3NaturalMotionAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.Vector3NaturalMotionAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "Vector3NaturalMotionAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::Vector4KeyFrameAnimation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.Vector4KeyFrameAnimation";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "Vector4KeyFrameAnimation";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::Visual>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.Visual";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "Visual";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::VisualCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.VisualCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "VisualCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::VisualUnorderedCollection>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.VisualUnorderedCollection";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "VisualUnorderedCollection";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::IAnimationObject>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition._IAnimationObject";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "_IAnimationObject";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ICompositionAnimationBase>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition._ICompositionAnimationBase";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "_ICompositionAnimationBase";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ICompositionSupportsSystemBackdrop>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition._ICompositionSupportsSystemBackdrop";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "_ICompositionSupportsSystemBackdrop";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ICompositionSurface>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition._ICompositionSurface";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "_ICompositionSurface";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::ICompositionSurfaceFacade>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition._ICompositionSurfaceFacade";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "_ICompositionSurfaceFacade";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::IVisualElement>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition._IVisualElement";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "_IVisualElement";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::IVisualElement2>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition._IVisualElement2";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "_IVisualElement2";
    };

    template<>
    struct py_type<winrt::Windows::UI::Composition::InkTrailPoint>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_ui_composition.InkTrailPoint_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.ui.composition.InkTrailPoint";
        static constexpr const char* module_name = "winrt.windows.ui.composition";
        static constexpr const char* type_name = "InkTrailPoint";
    };
}

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

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

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

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

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

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

namespace py::impl::Windows::UI::Composition
{
}

namespace py::wrapper::Windows::UI::Composition
{
    using AmbientLight = py::winrt_wrapper<winrt::Windows::UI::Composition::AmbientLight>;
    using AnimationController = py::winrt_wrapper<winrt::Windows::UI::Composition::AnimationController>;
    using AnimationPropertyInfo = py::winrt_wrapper<winrt::Windows::UI::Composition::AnimationPropertyInfo>;
    using BackEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::BackEasingFunction>;
    using BooleanKeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::BooleanKeyFrameAnimation>;
    using BounceEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::BounceEasingFunction>;
    using BounceScalarNaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::BounceScalarNaturalMotionAnimation>;
    using BounceVector2NaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::BounceVector2NaturalMotionAnimation>;
    using BounceVector3NaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::BounceVector3NaturalMotionAnimation>;
    using CircleEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::CircleEasingFunction>;
    using ColorKeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::ColorKeyFrameAnimation>;
    using CompositionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionAnimation>;
    using CompositionAnimationGroup = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionAnimationGroup>;
    using CompositionBackdropBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionBackdropBrush>;
    using CompositionBatchCompletedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionBatchCompletedEventArgs>;
    using CompositionBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionBrush>;
    using CompositionCapabilities = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionCapabilities>;
    using CompositionClip = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionClip>;
    using CompositionColorBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionColorBrush>;
    using CompositionColorGradientStop = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionColorGradientStop>;
    using CompositionColorGradientStopCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionColorGradientStopCollection>;
    using CompositionCommitBatch = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionCommitBatch>;
    using CompositionContainerShape = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionContainerShape>;
    using CompositionDrawingSurface = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionDrawingSurface>;
    using CompositionEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionEasingFunction>;
    using CompositionEffectBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionEffectBrush>;
    using CompositionEffectFactory = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionEffectFactory>;
    using CompositionEffectSourceParameter = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionEffectSourceParameter>;
    using CompositionEllipseGeometry = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionEllipseGeometry>;
    using CompositionGeometricClip = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionGeometricClip>;
    using CompositionGeometry = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionGeometry>;
    using CompositionGradientBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionGradientBrush>;
    using CompositionGraphicsDevice = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionGraphicsDevice>;
    using CompositionLight = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionLight>;
    using CompositionLineGeometry = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionLineGeometry>;
    using CompositionLinearGradientBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionLinearGradientBrush>;
    using CompositionMaskBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionMaskBrush>;
    using CompositionMipmapSurface = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionMipmapSurface>;
    using CompositionNineGridBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionNineGridBrush>;
    using CompositionObject = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionObject>;
    using CompositionPath = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionPath>;
    using CompositionPathGeometry = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionPathGeometry>;
    using CompositionProjectedShadow = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionProjectedShadow>;
    using CompositionProjectedShadowCaster = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionProjectedShadowCaster>;
    using CompositionProjectedShadowCasterCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionProjectedShadowCasterCollection>;
    using CompositionProjectedShadowReceiver = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionProjectedShadowReceiver>;
    using CompositionProjectedShadowReceiverUnorderedCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionProjectedShadowReceiverUnorderedCollection>;
    using CompositionPropertySet = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionPropertySet>;
    using CompositionRadialGradientBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionRadialGradientBrush>;
    using CompositionRectangleGeometry = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionRectangleGeometry>;
    using CompositionRoundedRectangleGeometry = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionRoundedRectangleGeometry>;
    using CompositionScopedBatch = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionScopedBatch>;
    using CompositionShadow = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionShadow>;
    using CompositionShape = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionShape>;
    using CompositionShapeCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionShapeCollection>;
    using CompositionSpriteShape = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionSpriteShape>;
    using CompositionStrokeDashArray = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionStrokeDashArray>;
    using CompositionSurfaceBrush = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionSurfaceBrush>;
    using CompositionTarget = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionTarget>;
    using CompositionTexture = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionTexture>;
    using CompositionTransform = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionTransform>;
    using CompositionViewBox = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionViewBox>;
    using CompositionVirtualDrawingSurface = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionVirtualDrawingSurface>;
    using CompositionVisualSurface = py::winrt_wrapper<winrt::Windows::UI::Composition::CompositionVisualSurface>;
    using Compositor = py::winrt_wrapper<winrt::Windows::UI::Composition::Compositor>;
    using ContainerVisual = py::winrt_wrapper<winrt::Windows::UI::Composition::ContainerVisual>;
    using CubicBezierEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::CubicBezierEasingFunction>;
    using DelegatedInkTrailVisual = py::winrt_wrapper<winrt::Windows::UI::Composition::DelegatedInkTrailVisual>;
    using DistantLight = py::winrt_wrapper<winrt::Windows::UI::Composition::DistantLight>;
    using DropShadow = py::winrt_wrapper<winrt::Windows::UI::Composition::DropShadow>;
    using ElasticEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::ElasticEasingFunction>;
    using ExponentialEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::ExponentialEasingFunction>;
    using ExpressionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::ExpressionAnimation>;
    using ImplicitAnimationCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::ImplicitAnimationCollection>;
    using InitialValueExpressionCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::InitialValueExpressionCollection>;
    using InsetClip = py::winrt_wrapper<winrt::Windows::UI::Composition::InsetClip>;
    using KeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::KeyFrameAnimation>;
    using LayerVisual = py::winrt_wrapper<winrt::Windows::UI::Composition::LayerVisual>;
    using LinearEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::LinearEasingFunction>;
    using NaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::NaturalMotionAnimation>;
    using PathKeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::PathKeyFrameAnimation>;
    using PointLight = py::winrt_wrapper<winrt::Windows::UI::Composition::PointLight>;
    using PowerEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::PowerEasingFunction>;
    using QuaternionKeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::QuaternionKeyFrameAnimation>;
    using RectangleClip = py::winrt_wrapper<winrt::Windows::UI::Composition::RectangleClip>;
    using RedirectVisual = py::winrt_wrapper<winrt::Windows::UI::Composition::RedirectVisual>;
    using RenderingDeviceReplacedEventArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::RenderingDeviceReplacedEventArgs>;
    using ScalarKeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::ScalarKeyFrameAnimation>;
    using ScalarNaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::ScalarNaturalMotionAnimation>;
    using ShapeVisual = py::winrt_wrapper<winrt::Windows::UI::Composition::ShapeVisual>;
    using SineEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::SineEasingFunction>;
    using SpotLight = py::winrt_wrapper<winrt::Windows::UI::Composition::SpotLight>;
    using SpringScalarNaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::SpringScalarNaturalMotionAnimation>;
    using SpringVector2NaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::SpringVector2NaturalMotionAnimation>;
    using SpringVector3NaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::SpringVector3NaturalMotionAnimation>;
    using SpriteVisual = py::winrt_wrapper<winrt::Windows::UI::Composition::SpriteVisual>;
    using StepEasingFunction = py::winrt_wrapper<winrt::Windows::UI::Composition::StepEasingFunction>;
    using Vector2KeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::Vector2KeyFrameAnimation>;
    using Vector2NaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::Vector2NaturalMotionAnimation>;
    using Vector3KeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::Vector3KeyFrameAnimation>;
    using Vector3NaturalMotionAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::Vector3NaturalMotionAnimation>;
    using Vector4KeyFrameAnimation = py::winrt_wrapper<winrt::Windows::UI::Composition::Vector4KeyFrameAnimation>;
    using Visual = py::winrt_wrapper<winrt::Windows::UI::Composition::Visual>;
    using VisualCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::VisualCollection>;
    using VisualUnorderedCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::VisualUnorderedCollection>;
    using IAnimationObject = py::winrt_wrapper<winrt::Windows::UI::Composition::IAnimationObject>;
    using ICompositionAnimationBase = py::winrt_wrapper<winrt::Windows::UI::Composition::ICompositionAnimationBase>;
    using ICompositionSupportsSystemBackdrop = py::winrt_wrapper<winrt::Windows::UI::Composition::ICompositionSupportsSystemBackdrop>;
    using ICompositionSurface = py::winrt_wrapper<winrt::Windows::UI::Composition::ICompositionSurface>;
    using ICompositionSurfaceFacade = py::winrt_wrapper<winrt::Windows::UI::Composition::ICompositionSurfaceFacade>;
    using IVisualElement = py::winrt_wrapper<winrt::Windows::UI::Composition::IVisualElement>;
    using IVisualElement2 = py::winrt_wrapper<winrt::Windows::UI::Composition::IVisualElement2>;
    using InkTrailPoint = py::winrt_struct_wrapper<winrt::Windows::UI::Composition::InkTrailPoint>;
}

namespace py
{
}
