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

#pragma once

#include "pybase.h"
static_assert(winrt::check_version(PYWINRT_VERSION, "3.2.1"), "Mismatched Py/WinRT headers.");
#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>

#include <winrt/Windows.Management.Deployment.h>

namespace py::proj::Windows::Management::Deployment
{
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::AddPackageByAppInstallerOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::DeploymentOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::DeploymentProgressState> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::PackageInstallState> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::PackageState> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::PackageStatus> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::PackageStubPreference> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::PackageTypes> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::RemovalOptions> = "I";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::SharedPackageContainerCreationCollisionOptions> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::SharedPackageContainerOperationStatus> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::StubPackageOption> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Management::Deployment::DeploymentProgress> = "T{i:state:I:percentage:}";


    template<>
    struct py_type<winrt::Windows::Management::Deployment::AddPackageByAppInstallerOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.AddPackageByAppInstallerOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "AddPackageByAppInstallerOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::DeploymentOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.DeploymentOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "DeploymentOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::DeploymentProgressState>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.DeploymentProgressState";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "DeploymentProgressState";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageInstallState>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageInstallState";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageInstallState";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageState>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageState";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageState";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageStatus";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageStatus";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageStubPreference>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageStubPreference";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageStubPreference";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageTypes>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageTypes";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageTypes";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::RemovalOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.RemovalOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "RemovalOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::SharedPackageContainerCreationCollisionOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.SharedPackageContainerCreationCollisionOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "SharedPackageContainerCreationCollisionOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::SharedPackageContainerOperationStatus>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.SharedPackageContainerOperationStatus";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "SharedPackageContainerOperationStatus";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::StubPackageOption>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.StubPackageOption";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "StubPackageOption";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::AddPackageOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.AddPackageOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "AddPackageOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::AppInstallerManager>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.AppInstallerManager";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "AppInstallerManager";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::AutoUpdateSettingsOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.AutoUpdateSettingsOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "AutoUpdateSettingsOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::CreateSharedPackageContainerOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.CreateSharedPackageContainerOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "CreateSharedPackageContainerOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::CreateSharedPackageContainerResult>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.CreateSharedPackageContainerResult";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "CreateSharedPackageContainerResult";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::DeleteSharedPackageContainerOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.DeleteSharedPackageContainerOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "DeleteSharedPackageContainerOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::DeleteSharedPackageContainerResult>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.DeleteSharedPackageContainerResult";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "DeleteSharedPackageContainerResult";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::DeploymentResult>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.DeploymentResult";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "DeploymentResult";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::FindSharedPackageContainerOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.FindSharedPackageContainerOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "FindSharedPackageContainerOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageAllUserProvisioningOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageAllUserProvisioningOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageAllUserProvisioningOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageManager>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageManager";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageManager";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageManagerDebugSettings>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageManagerDebugSettings";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageManagerDebugSettings";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageUserInformation>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageUserInformation";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageUserInformation";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::PackageVolume>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.PackageVolume";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "PackageVolume";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::RegisterPackageOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.RegisterPackageOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "RegisterPackageOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::RemovePackageOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.RemovePackageOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "RemovePackageOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::SharedPackageContainer>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.SharedPackageContainer";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "SharedPackageContainer";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::SharedPackageContainerManager>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.SharedPackageContainerManager";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "SharedPackageContainerManager";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::SharedPackageContainerMember>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.SharedPackageContainerMember";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "SharedPackageContainerMember";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::StagePackageOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.StagePackageOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "StagePackageOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::UpdateSharedPackageContainerOptions>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.UpdateSharedPackageContainerOptions";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "UpdateSharedPackageContainerOptions";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::UpdateSharedPackageContainerResult>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.UpdateSharedPackageContainerResult";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "UpdateSharedPackageContainerResult";
    };

    template<>
    struct py_type<winrt::Windows::Management::Deployment::DeploymentProgress>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_management_deployment.DeploymentProgress_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.management.deployment.DeploymentProgress";
        static constexpr const char* module_name = "winrt.windows.management.deployment";
        static constexpr const char* type_name = "DeploymentProgress";
    };
}

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

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

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

namespace py::impl::Windows::Management::Deployment
{
}

namespace py::wrapper::Windows::Management::Deployment
{
    using AddPackageOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::AddPackageOptions>;
    using AppInstallerManager = py::winrt_wrapper<winrt::Windows::Management::Deployment::AppInstallerManager>;
    using AutoUpdateSettingsOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::AutoUpdateSettingsOptions>;
    using CreateSharedPackageContainerOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::CreateSharedPackageContainerOptions>;
    using CreateSharedPackageContainerResult = py::winrt_wrapper<winrt::Windows::Management::Deployment::CreateSharedPackageContainerResult>;
    using DeleteSharedPackageContainerOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::DeleteSharedPackageContainerOptions>;
    using DeleteSharedPackageContainerResult = py::winrt_wrapper<winrt::Windows::Management::Deployment::DeleteSharedPackageContainerResult>;
    using DeploymentResult = py::winrt_wrapper<winrt::Windows::Management::Deployment::DeploymentResult>;
    using FindSharedPackageContainerOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::FindSharedPackageContainerOptions>;
    using PackageAllUserProvisioningOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::PackageAllUserProvisioningOptions>;
    using PackageManager = py::winrt_wrapper<winrt::Windows::Management::Deployment::PackageManager>;
    using PackageManagerDebugSettings = py::winrt_wrapper<winrt::Windows::Management::Deployment::PackageManagerDebugSettings>;
    using PackageUserInformation = py::winrt_wrapper<winrt::Windows::Management::Deployment::PackageUserInformation>;
    using PackageVolume = py::winrt_wrapper<winrt::Windows::Management::Deployment::PackageVolume>;
    using RegisterPackageOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::RegisterPackageOptions>;
    using RemovePackageOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::RemovePackageOptions>;
    using SharedPackageContainer = py::winrt_wrapper<winrt::Windows::Management::Deployment::SharedPackageContainer>;
    using SharedPackageContainerManager = py::winrt_wrapper<winrt::Windows::Management::Deployment::SharedPackageContainerManager>;
    using SharedPackageContainerMember = py::winrt_wrapper<winrt::Windows::Management::Deployment::SharedPackageContainerMember>;
    using StagePackageOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::StagePackageOptions>;
    using UpdateSharedPackageContainerOptions = py::winrt_wrapper<winrt::Windows::Management::Deployment::UpdateSharedPackageContainerOptions>;
    using UpdateSharedPackageContainerResult = py::winrt_wrapper<winrt::Windows::Management::Deployment::UpdateSharedPackageContainerResult>;
    using DeploymentProgress = py::winrt_struct_wrapper<winrt::Windows::Management::Deployment::DeploymentProgress>;
}

namespace py
{
}
