// 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.UI.Composition.h>
#include <winrt/Windows.UI.Input.h>

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

namespace py::wrapper::Windows::UI::Composition::Interactions
{
    using CompositionConditionalValue = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::CompositionConditionalValue>;
    using CompositionInteractionSourceCollection = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::CompositionInteractionSourceCollection>;
    using InteractionSourceConfiguration = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionSourceConfiguration>;
    using InteractionTracker = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTracker>;
    using InteractionTrackerCustomAnimationStateEnteredArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerCustomAnimationStateEnteredArgs>;
    using InteractionTrackerIdleStateEnteredArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerIdleStateEnteredArgs>;
    using InteractionTrackerInertiaModifier = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerInertiaModifier>;
    using InteractionTrackerInertiaMotion = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerInertiaMotion>;
    using InteractionTrackerInertiaNaturalMotion = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerInertiaNaturalMotion>;
    using InteractionTrackerInertiaRestingValue = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerInertiaRestingValue>;
    using InteractionTrackerInertiaStateEnteredArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerInertiaStateEnteredArgs>;
    using InteractionTrackerInteractingStateEnteredArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerInteractingStateEnteredArgs>;
    using InteractionTrackerRequestIgnoredArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerRequestIgnoredArgs>;
    using InteractionTrackerValuesChangedArgs = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerValuesChangedArgs>;
    using InteractionTrackerVector2InertiaModifier = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerVector2InertiaModifier>;
    using InteractionTrackerVector2InertiaNaturalMotion = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::InteractionTrackerVector2InertiaNaturalMotion>;
    using VisualInteractionSource = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::VisualInteractionSource>;
    using ICompositionInteractionSource = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::ICompositionInteractionSource>;
    using IInteractionTrackerOwner = py::winrt_wrapper<winrt::Windows::UI::Composition::Interactions::IInteractionTrackerOwner>;
}

namespace py
{
}
