// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15

#pragma once
#ifndef WINRT_Microsoft_Windows_Management_Deployment_0_H
#define WINRT_Microsoft_Windows_Management_Deployment_0_H
WINRT_EXPORT namespace winrt::Microsoft::Windows::ApplicationModel::DynamicDependency
{
    struct AddPackageDependencyOptions;
    struct CreatePackageDependencyOptions;
    struct PackageDependencyContextId;
    enum class PackageDependencyProcessorArchitectures : uint32_t;
}
WINRT_EXPORT namespace winrt::Windows::ApplicationModel
{
    struct PackageVersion;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct HResult;
    struct Uri;
}
WINRT_EXPORT namespace winrt::Microsoft::Windows::Management::Deployment
{
    enum class PackageDeploymentFeature : int32_t
    {
        PackageUriScheme_ms_uup = 1,
        IsPackageReadyOrNewerAvailable = 2,
        RemovePackageByUri = 3,
        ResetPackage = 4,
        RepairPackage = 5,
        ProvisionPackage_Framework = 6,
    };
    enum class PackageDeploymentProgressStatus : int32_t
    {
        Queued = 0,
        InProgress = 1,
        CompletedSuccess = 2,
        CompletedFailure = 3,
    };
    enum class PackageDeploymentStatus : int32_t
    {
        InProgress = 0,
        CompletedSuccess = 1,
        CompletedFailure = 2,
    };
    enum class PackageReadyOrNewerAvailableStatus : int32_t
    {
        NotReady = 0,
        Ready = 1,
        NewerAvailable = 2,
    };
    enum class StubPackageOption : int32_t
    {
        Default = 0,
        InstallFull = 1,
        InstallStub = 2,
        UsePreference = 3,
    };
    struct IAddPackageOptions;
    struct IEnsureReadyOptions;
    struct IEnsureReadyOptions2;
    struct IPackageDeploymentManager;
    struct IPackageDeploymentManager2;
    struct IPackageDeploymentManagerStatics;
    struct IPackageDeploymentManagerStatics2;
    struct IPackageDeploymentResult;
    struct IPackageRuntimeManager;
    struct IPackageRuntimeManagerStatics;
    struct IPackageSet;
    struct IPackageSetItem;
    struct IPackageSetItemRuntimeDisposition;
    struct IPackageSetRuntimeDisposition;
    struct IPackageVolume;
    struct IPackageVolumeStatics;
    struct IProvisionPackageOptions;
    struct IRegisterPackageOptions;
    struct IRemovePackageOptions;
    struct IStagePackageOptions;
    struct AddPackageOptions;
    struct EnsureReadyOptions;
    struct PackageDeploymentManager;
    struct PackageDeploymentResult;
    struct PackageRuntimeManager;
    struct PackageSet;
    struct PackageSetItem;
    struct PackageSetItemRuntimeDisposition;
    struct PackageSetRuntimeDisposition;
    struct PackageVolume;
    struct ProvisionPackageOptions;
    struct RegisterPackageOptions;
    struct RemovePackageOptions;
    struct StagePackageOptions;
    struct PackageDeploymentProgress;
    struct PackageDeploymentContract;
}
namespace winrt::impl
{
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IAddPackageOptions>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics2>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentResult>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManager>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManagerStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageSet>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItem>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItemRuntimeDisposition>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageSetRuntimeDisposition>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageVolume>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IPackageVolumeStatics>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IProvisionPackageOptions>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IRegisterPackageOptions>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IRemovePackageOptions>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::IStagePackageOptions>{ using type = interface_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::AddPackageOptions>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::EnsureReadyOptions>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentManager>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentResult>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageRuntimeManager>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageSet>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageSetItem>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageSetItemRuntimeDisposition>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageSetRuntimeDisposition>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageVolume>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::ProvisionPackageOptions>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::RegisterPackageOptions>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::StagePackageOptions>{ using type = class_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentFeature>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentProgressStatus>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentStatus>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageReadyOrNewerAvailableStatus>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::StubPackageOption>{ using type = enum_category; };
    template <> struct category<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentProgress>{ using type = struct_category<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentProgressStatus, double>; };
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::AddPackageOptions> = L"Microsoft.Windows.Management.Deployment.AddPackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::EnsureReadyOptions> = L"Microsoft.Windows.Management.Deployment.EnsureReadyOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentManager> = L"Microsoft.Windows.Management.Deployment.PackageDeploymentManager";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentResult> = L"Microsoft.Windows.Management.Deployment.PackageDeploymentResult";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageRuntimeManager> = L"Microsoft.Windows.Management.Deployment.PackageRuntimeManager";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageSet> = L"Microsoft.Windows.Management.Deployment.PackageSet";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageSetItem> = L"Microsoft.Windows.Management.Deployment.PackageSetItem";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageSetItemRuntimeDisposition> = L"Microsoft.Windows.Management.Deployment.PackageSetItemRuntimeDisposition";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageSetRuntimeDisposition> = L"Microsoft.Windows.Management.Deployment.PackageSetRuntimeDisposition";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageVolume> = L"Microsoft.Windows.Management.Deployment.PackageVolume";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::ProvisionPackageOptions> = L"Microsoft.Windows.Management.Deployment.ProvisionPackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::RegisterPackageOptions> = L"Microsoft.Windows.Management.Deployment.RegisterPackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions> = L"Microsoft.Windows.Management.Deployment.RemovePackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::StagePackageOptions> = L"Microsoft.Windows.Management.Deployment.StagePackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentFeature> = L"Microsoft.Windows.Management.Deployment.PackageDeploymentFeature";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentProgressStatus> = L"Microsoft.Windows.Management.Deployment.PackageDeploymentProgressStatus";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentStatus> = L"Microsoft.Windows.Management.Deployment.PackageDeploymentStatus";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageReadyOrNewerAvailableStatus> = L"Microsoft.Windows.Management.Deployment.PackageReadyOrNewerAvailableStatus";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::StubPackageOption> = L"Microsoft.Windows.Management.Deployment.StubPackageOption";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentProgress> = L"Microsoft.Windows.Management.Deployment.PackageDeploymentProgress";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IAddPackageOptions> = L"Microsoft.Windows.Management.Deployment.IAddPackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions> = L"Microsoft.Windows.Management.Deployment.IEnsureReadyOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions2> = L"Microsoft.Windows.Management.Deployment.IEnsureReadyOptions2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager> = L"Microsoft.Windows.Management.Deployment.IPackageDeploymentManager";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager2> = L"Microsoft.Windows.Management.Deployment.IPackageDeploymentManager2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics> = L"Microsoft.Windows.Management.Deployment.IPackageDeploymentManagerStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics2> = L"Microsoft.Windows.Management.Deployment.IPackageDeploymentManagerStatics2";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentResult> = L"Microsoft.Windows.Management.Deployment.IPackageDeploymentResult";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManager> = L"Microsoft.Windows.Management.Deployment.IPackageRuntimeManager";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManagerStatics> = L"Microsoft.Windows.Management.Deployment.IPackageRuntimeManagerStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSet> = L"Microsoft.Windows.Management.Deployment.IPackageSet";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItem> = L"Microsoft.Windows.Management.Deployment.IPackageSetItem";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItemRuntimeDisposition> = L"Microsoft.Windows.Management.Deployment.IPackageSetItemRuntimeDisposition";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSetRuntimeDisposition> = L"Microsoft.Windows.Management.Deployment.IPackageSetRuntimeDisposition";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageVolume> = L"Microsoft.Windows.Management.Deployment.IPackageVolume";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IPackageVolumeStatics> = L"Microsoft.Windows.Management.Deployment.IPackageVolumeStatics";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IProvisionPackageOptions> = L"Microsoft.Windows.Management.Deployment.IProvisionPackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IRegisterPackageOptions> = L"Microsoft.Windows.Management.Deployment.IRegisterPackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IRemovePackageOptions> = L"Microsoft.Windows.Management.Deployment.IRemovePackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::IStagePackageOptions> = L"Microsoft.Windows.Management.Deployment.IStagePackageOptions";
    template <> inline constexpr auto& name_v<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentContract> = L"Microsoft.Windows.Management.Deployment.PackageDeploymentContract";
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IAddPackageOptions>{ 0xE3DB7F39,0xF9D0,0x5884,{ 0xBD,0xEF,0x61,0x53,0xB5,0x45,0x74,0xA3 } }; // E3DB7F39-F9D0-5884-BDEF-6153B54574A3
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions>{ 0x20102D03,0xEC44,0x5C2B,{ 0x8F,0xD6,0x11,0x04,0xDC,0x99,0x75,0x5D } }; // 20102D03-EC44-5C2B-8FD6-1104DC99755D
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions2>{ 0xEEFA9259,0xB13A,0x50A3,{ 0x91,0x9E,0xAE,0x11,0x6D,0x83,0xC0,0xDA } }; // EEFA9259-B13A-50A3-919E-AE116D83C0DA
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager>{ 0xF41717D8,0x5AB2,0x57AC,{ 0x83,0xCD,0xD0,0xC4,0x8C,0xC7,0x84,0xCD } }; // F41717D8-5AB2-57AC-83CD-D0C48CC784CD
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager2>{ 0x6FC6D0F3,0xF9DD,0x5C14,{ 0x9D,0x3F,0x07,0x71,0x65,0xED,0xDF,0x98 } }; // 6FC6D0F3-F9DD-5C14-9D3F-077165EDDF98
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics>{ 0xDBDA4AC6,0xCA28,0x59B8,{ 0x9F,0xC6,0xDB,0xFB,0x57,0x65,0xF1,0xC2 } }; // DBDA4AC6-CA28-59B8-9FC6-DBFB5765F1C2
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics2>{ 0x0EC31486,0x00B5,0x5937,{ 0x8C,0xD4,0x75,0x92,0x60,0xFD,0xC4,0xA2 } }; // 0EC31486-00B5-5937-8CD4-759260FDC4A2
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentResult>{ 0xD6B99601,0x18C2,0x599E,{ 0x8B,0xD1,0x40,0xA9,0x31,0x0A,0xD2,0x63 } }; // D6B99601-18C2-599E-8BD1-40A9310AD263
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManager>{ 0x6BF0FD29,0x6C2A,0x58D1,{ 0xAF,0x0C,0xAB,0xD2,0xEA,0xC4,0x5E,0x29 } }; // 6BF0FD29-6C2A-58D1-AF0C-ABD2EAC45E29
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManagerStatics>{ 0x790947DE,0x01D4,0x5858,{ 0xAA,0x69,0x9C,0x93,0x90,0xFB,0x7D,0x3E } }; // 790947DE-01D4-5858-AA69-9C9390FB7D3E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSet>{ 0x229FDF93,0x8529,0x5F8D,{ 0x98,0x8C,0xAF,0x8A,0x39,0xAD,0x46,0xF7 } }; // 229FDF93-8529-5F8D-988C-AF8A39AD46F7
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItem>{ 0x8F254E15,0xC371,0x550F,{ 0xB4,0xE8,0x3F,0x0B,0xB1,0xAE,0x37,0x5F } }; // 8F254E15-C371-550F-B4E8-3F0BB1AE375F
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItemRuntimeDisposition>{ 0x7A7F9F70,0xD416,0x5F83,{ 0xA3,0xCD,0x02,0x7B,0xF3,0xD2,0xAB,0xFD } }; // 7A7F9F70-D416-5F83-A3CD-027BF3D2ABFD
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageSetRuntimeDisposition>{ 0xC13F1088,0xEA36,0x5DB3,{ 0xBC,0xDD,0xE6,0xD5,0x9E,0x6C,0x9B,0x71 } }; // C13F1088-EA36-5DB3-BCDD-E6D59E6C9B71
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageVolume>{ 0x9C9710F4,0x795A,0x58B3,{ 0x93,0xF4,0xC9,0x91,0xC4,0x32,0x9C,0x49 } }; // 9C9710F4-795A-58B3-93F4-C991C4329C49
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IPackageVolumeStatics>{ 0x4C731835,0x8BC0,0x5313,{ 0x9B,0x56,0x8A,0x41,0x00,0xEA,0xEA,0x01 } }; // 4C731835-8BC0-5313-9B56-8A4100EAEA01
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IProvisionPackageOptions>{ 0x415E300F,0xD1E3,0x581E,{ 0xA1,0x14,0x76,0xD2,0x77,0xB0,0x61,0x36 } }; // 415E300F-D1E3-581E-A114-76D277B06136
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IRegisterPackageOptions>{ 0x83068623,0x2046,0x505F,{ 0x84,0x25,0x55,0x22,0x6C,0x0F,0x84,0xCC } }; // 83068623-2046-505F-8425-55226C0F84CC
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IRemovePackageOptions>{ 0xE7C90595,0x9A44,0x5046,{ 0x8E,0xBF,0x41,0xED,0x32,0x6B,0x20,0x0E } }; // E7C90595-9A44-5046-8EBF-41ED326B200E
    template <> inline constexpr guid guid_v<winrt::Microsoft::Windows::Management::Deployment::IStagePackageOptions>{ 0x9B6B3203,0xFD7C,0x5EAD,{ 0xA9,0xD6,0xAB,0x2E,0x85,0x66,0xBE,0x5E } }; // 9B6B3203-FD7C-5EAD-A9D6-AB2E8566BE5E
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::AddPackageOptions>{ using type = winrt::Microsoft::Windows::Management::Deployment::IAddPackageOptions; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::EnsureReadyOptions>{ using type = winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentManager>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentResult>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentResult; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageRuntimeManager>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManager; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageSet>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageSet; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageSetItem>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageSetItem; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageSetItemRuntimeDisposition>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageSetItemRuntimeDisposition; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageSetRuntimeDisposition>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageSetRuntimeDisposition; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::PackageVolume>{ using type = winrt::Microsoft::Windows::Management::Deployment::IPackageVolume; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::ProvisionPackageOptions>{ using type = winrt::Microsoft::Windows::Management::Deployment::IProvisionPackageOptions; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::RegisterPackageOptions>{ using type = winrt::Microsoft::Windows::Management::Deployment::IRegisterPackageOptions; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions>{ using type = winrt::Microsoft::Windows::Management::Deployment::IRemovePackageOptions; };
    template <> struct default_interface<winrt::Microsoft::Windows::Management::Deployment::StagePackageOptions>{ using type = winrt::Microsoft::Windows::Management::Deployment::IStagePackageOptions; };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IAddPackageOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_TargetVolume(void**) noexcept = 0;
            virtual int32_t __stdcall put_TargetVolume(void*) noexcept = 0;
            virtual int32_t __stdcall get_DependencyPackageUris(void**) noexcept = 0;
            virtual int32_t __stdcall get_OptionalPackageFamilyNames(void**) noexcept = 0;
            virtual int32_t __stdcall get_OptionalPackageUris(void**) noexcept = 0;
            virtual int32_t __stdcall get_RelatedPackageUris(void**) noexcept = 0;
            virtual int32_t __stdcall get_ExternalLocationUri(void**) noexcept = 0;
            virtual int32_t __stdcall put_ExternalLocationUri(void*) noexcept = 0;
            virtual int32_t __stdcall get_StubPackageOption(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StubPackageOption(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_AllowUnsigned(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AllowUnsigned(bool) noexcept = 0;
            virtual int32_t __stdcall get_DeveloperMode(bool*) noexcept = 0;
            virtual int32_t __stdcall put_DeveloperMode(bool) noexcept = 0;
            virtual int32_t __stdcall get_ForceAppShutdown(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ForceAppShutdown(bool) noexcept = 0;
            virtual int32_t __stdcall get_ForceTargetAppShutdown(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ForceTargetAppShutdown(bool) noexcept = 0;
            virtual int32_t __stdcall get_ForceUpdateFromAnyVersion(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ForceUpdateFromAnyVersion(bool) noexcept = 0;
            virtual int32_t __stdcall get_InstallAllResources(bool*) noexcept = 0;
            virtual int32_t __stdcall put_InstallAllResources(bool) noexcept = 0;
            virtual int32_t __stdcall get_RequiredContentGroupOnly(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RequiredContentGroupOnly(bool) noexcept = 0;
            virtual int32_t __stdcall get_RetainFilesOnFailure(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RetainFilesOnFailure(bool) noexcept = 0;
            virtual int32_t __stdcall get_StageInPlace(bool*) noexcept = 0;
            virtual int32_t __stdcall put_StageInPlace(bool) noexcept = 0;
            virtual int32_t __stdcall get_DeferRegistrationWhenPackagesAreInUse(bool*) noexcept = 0;
            virtual int32_t __stdcall put_DeferRegistrationWhenPackagesAreInUse(bool) noexcept = 0;
            virtual int32_t __stdcall get_IsExpectedDigestsSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ExpectedDigests(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsLimitToExistingPackagesSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall get_LimitToExistingPackages(bool*) noexcept = 0;
            virtual int32_t __stdcall put_LimitToExistingPackages(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AddPackageOptions(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_RegisterNewerIfAvailable(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RegisterNewerIfAvailable(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall IsPackageReady(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall IsPackageReadyByUri(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall IsPackageSetReady(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall EnsurePackageReadyAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall EnsurePackageReadyByUriAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall EnsurePackageSetReadyAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall AddPackageAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall AddPackageByUriAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall AddPackageSetAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall StagePackageAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall StagePackageByUriAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall StagePackageSetAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RegisterPackageAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RegisterPackageByUriAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RegisterPackageSetAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RemovePackageAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RemovePackageByFullNameAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RemovePackageByFamilyNameAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RemovePackageByUriAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RemovePackageSetAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall ResetPackageAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall ResetPackageByUriAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall ResetPackageSetAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall RepairPackageAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall RepairPackageByUriAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall RepairPackageSetAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall ProvisionPackageAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall ProvisionPackageByUriAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall ProvisionPackageSetAsync(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall DeprovisionPackageAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall DeprovisionPackageByUriAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall DeprovisionPackageSetAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall IsPackageRegistrationPending(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall IsPackageRegistrationPendingForUser(void*, void*, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall IsPackageReadyOrNewerAvailable(void*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall IsPackageReadyOrNewerAvailableByUri(void*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall IsPackageSetReadyOrNewerAvailable(void*, int32_t*) noexcept = 0;
            virtual int32_t __stdcall IsPackageProvisioned(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall IsPackageProvisionedByUri(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall IsPackageSetProvisioned(void*, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetDefault(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall IsPackageDeploymentFeatureSupported(int32_t, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Error(winrt::hresult*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0;
            virtual int32_t __stdcall get_ErrorText(void**) noexcept = 0;
            virtual int32_t __stdcall get_ActivityId(winrt::guid*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManager>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall AddPackageSet(void*, void**) noexcept = 0;
            virtual int32_t __stdcall AddPackageSetWithOptions(void*, void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RemovePackageSet(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManagerStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall GetDefault(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageSet>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Id(void**) noexcept = 0;
            virtual int32_t __stdcall put_Id(void*) noexcept = 0;
            virtual int32_t __stdcall get_PackageUri(void**) noexcept = 0;
            virtual int32_t __stdcall put_PackageUri(void*) noexcept = 0;
            virtual int32_t __stdcall get_Items(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItem>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Id(void**) noexcept = 0;
            virtual int32_t __stdcall put_Id(void*) noexcept = 0;
            virtual int32_t __stdcall get_PackageFamilyName(void**) noexcept = 0;
            virtual int32_t __stdcall put_PackageFamilyName(void*) noexcept = 0;
            virtual int32_t __stdcall get_MinVersion(struct struct_Windows_ApplicationModel_PackageVersion*) noexcept = 0;
            virtual int32_t __stdcall put_MinVersion(struct struct_Windows_ApplicationModel_PackageVersion) noexcept = 0;
            virtual int32_t __stdcall get_ProcessorArchitectureFilter(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ProcessorArchitectureFilter(uint32_t) noexcept = 0;
            virtual int32_t __stdcall get_PackageUri(void**) noexcept = 0;
            virtual int32_t __stdcall put_PackageUri(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItemRuntimeDisposition>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_PackageSetItemId(void**) noexcept = 0;
            virtual int32_t __stdcall get_PackageFullName(void**) noexcept = 0;
            virtual int32_t __stdcall get_PackageDependencyId(void**) noexcept = 0;
            virtual int32_t __stdcall get_PackageDependencyContextId(struct struct_Microsoft_Windows_ApplicationModel_DynamicDependency_PackageDependencyContextId*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageSetRuntimeDisposition>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_PackageSetId(void**) noexcept = 0;
            virtual int32_t __stdcall put_PackageSetId(void*) noexcept = 0;
            virtual int32_t __stdcall get_PackageSetItemRuntimeDispositions(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageVolume>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsSystemVolume(bool*) noexcept = 0;
            virtual int32_t __stdcall get_MountPoint(void**) noexcept = 0;
            virtual int32_t __stdcall get_Name(void**) noexcept = 0;
            virtual int32_t __stdcall get_PackageStorePath(void**) noexcept = 0;
            virtual int32_t __stdcall get_SupportsHardLinks(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsFullTrustPackageSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsAppxInstallSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall IsRepairNeeded(bool*) noexcept = 0;
            virtual int32_t __stdcall Repair() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IPackageVolumeStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall FindPackageVolumes(void**) noexcept = 0;
            virtual int32_t __stdcall FindPackageVolumeByPath(void*, void**) noexcept = 0;
            virtual int32_t __stdcall FindPackageVolumeByName(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IProvisionPackageOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsOptionalPackageFamilyNamesSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall get_OptionalPackageFamilyNames(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsProjectionOrderPackageFamilyNamesSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ProjectionOrderPackageFamilyNames(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IRegisterPackageOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_AppDataVolume(void**) noexcept = 0;
            virtual int32_t __stdcall put_AppDataVolume(void*) noexcept = 0;
            virtual int32_t __stdcall get_DependencyPackageFamilyNames(void**) noexcept = 0;
            virtual int32_t __stdcall get_DependencyPackageUris(void**) noexcept = 0;
            virtual int32_t __stdcall get_OptionalPackageFamilyNames(void**) noexcept = 0;
            virtual int32_t __stdcall get_ExternalLocationUri(void**) noexcept = 0;
            virtual int32_t __stdcall put_ExternalLocationUri(void*) noexcept = 0;
            virtual int32_t __stdcall get_AllowUnsigned(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AllowUnsigned(bool) noexcept = 0;
            virtual int32_t __stdcall get_DeveloperMode(bool*) noexcept = 0;
            virtual int32_t __stdcall put_DeveloperMode(bool) noexcept = 0;
            virtual int32_t __stdcall get_ForceAppShutdown(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ForceAppShutdown(bool) noexcept = 0;
            virtual int32_t __stdcall get_ForceTargetAppShutdown(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ForceTargetAppShutdown(bool) noexcept = 0;
            virtual int32_t __stdcall get_ForceUpdateFromAnyVersion(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ForceUpdateFromAnyVersion(bool) noexcept = 0;
            virtual int32_t __stdcall get_InstallAllResources(bool*) noexcept = 0;
            virtual int32_t __stdcall put_InstallAllResources(bool) noexcept = 0;
            virtual int32_t __stdcall get_StageInPlace(bool*) noexcept = 0;
            virtual int32_t __stdcall put_StageInPlace(bool) noexcept = 0;
            virtual int32_t __stdcall get_DeferRegistrationWhenPackagesAreInUse(bool*) noexcept = 0;
            virtual int32_t __stdcall put_DeferRegistrationWhenPackagesAreInUse(bool) noexcept = 0;
            virtual int32_t __stdcall get_IsExpectedDigestsSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ExpectedDigests(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IRemovePackageOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_FailIfNotFound(bool*) noexcept = 0;
            virtual int32_t __stdcall put_FailIfNotFound(bool) noexcept = 0;
            virtual int32_t __stdcall get_PreserveApplicationData(bool*) noexcept = 0;
            virtual int32_t __stdcall put_PreserveApplicationData(bool) noexcept = 0;
            virtual int32_t __stdcall get_PreserveRoamableApplicationData(bool*) noexcept = 0;
            virtual int32_t __stdcall put_PreserveRoamableApplicationData(bool) noexcept = 0;
            virtual int32_t __stdcall get_RemoveForAllUsers(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RemoveForAllUsers(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Microsoft::Windows::Management::Deployment::IStagePackageOptions>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_TargetVolume(void**) noexcept = 0;
            virtual int32_t __stdcall put_TargetVolume(void*) noexcept = 0;
            virtual int32_t __stdcall get_DependencyPackageUris(void**) noexcept = 0;
            virtual int32_t __stdcall get_OptionalPackageFamilyNames(void**) noexcept = 0;
            virtual int32_t __stdcall get_OptionalPackageUris(void**) noexcept = 0;
            virtual int32_t __stdcall get_RelatedPackageUris(void**) noexcept = 0;
            virtual int32_t __stdcall get_ExternalLocationUri(void**) noexcept = 0;
            virtual int32_t __stdcall put_ExternalLocationUri(void*) noexcept = 0;
            virtual int32_t __stdcall get_StubPackageOption(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StubPackageOption(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_DeveloperMode(bool*) noexcept = 0;
            virtual int32_t __stdcall put_DeveloperMode(bool) noexcept = 0;
            virtual int32_t __stdcall get_ForceUpdateFromAnyVersion(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ForceUpdateFromAnyVersion(bool) noexcept = 0;
            virtual int32_t __stdcall get_InstallAllResources(bool*) noexcept = 0;
            virtual int32_t __stdcall put_InstallAllResources(bool) noexcept = 0;
            virtual int32_t __stdcall get_RequiredContentGroupOnly(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RequiredContentGroupOnly(bool) noexcept = 0;
            virtual int32_t __stdcall get_StageInPlace(bool*) noexcept = 0;
            virtual int32_t __stdcall put_StageInPlace(bool) noexcept = 0;
            virtual int32_t __stdcall get_AllowUnsigned(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AllowUnsigned(bool) noexcept = 0;
            virtual int32_t __stdcall get_IsExpectedDigestsSupported(bool*) noexcept = 0;
            virtual int32_t __stdcall get_ExpectedDigests(void**) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IAddPackageOptions
    {
        [[nodiscard]] auto TargetVolume() const;
        auto TargetVolume(winrt::Microsoft::Windows::Management::Deployment::PackageVolume const& value) const;
        [[nodiscard]] auto DependencyPackageUris() const;
        [[nodiscard]] auto OptionalPackageFamilyNames() const;
        [[nodiscard]] auto OptionalPackageUris() const;
        [[nodiscard]] auto RelatedPackageUris() const;
        [[nodiscard]] auto ExternalLocationUri() const;
        auto ExternalLocationUri(winrt::Windows::Foundation::Uri const& value) const;
        [[nodiscard]] auto StubPackageOption() const;
        auto StubPackageOption(winrt::Microsoft::Windows::Management::Deployment::StubPackageOption const& value) const;
        [[nodiscard]] auto AllowUnsigned() const;
        auto AllowUnsigned(bool value) const;
        [[nodiscard]] auto DeveloperMode() const;
        auto DeveloperMode(bool value) const;
        [[nodiscard]] auto ForceAppShutdown() const;
        auto ForceAppShutdown(bool value) const;
        [[nodiscard]] auto ForceTargetAppShutdown() const;
        auto ForceTargetAppShutdown(bool value) const;
        [[nodiscard]] auto ForceUpdateFromAnyVersion() const;
        auto ForceUpdateFromAnyVersion(bool value) const;
        [[nodiscard]] auto InstallAllResources() const;
        auto InstallAllResources(bool value) const;
        [[nodiscard]] auto RequiredContentGroupOnly() const;
        auto RequiredContentGroupOnly(bool value) const;
        [[nodiscard]] auto RetainFilesOnFailure() const;
        auto RetainFilesOnFailure(bool value) const;
        [[nodiscard]] auto StageInPlace() const;
        auto StageInPlace(bool value) const;
        [[nodiscard]] auto DeferRegistrationWhenPackagesAreInUse() const;
        auto DeferRegistrationWhenPackagesAreInUse(bool value) const;
        [[nodiscard]] auto IsExpectedDigestsSupported() const;
        [[nodiscard]] auto ExpectedDigests() const;
        [[nodiscard]] auto IsLimitToExistingPackagesSupported() const;
        [[nodiscard]] auto LimitToExistingPackages() const;
        auto LimitToExistingPackages(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IAddPackageOptions>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IAddPackageOptions<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IEnsureReadyOptions
    {
        [[nodiscard]] auto AddPackageOptions() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IEnsureReadyOptions<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IEnsureReadyOptions2
    {
        [[nodiscard]] auto RegisterNewerIfAvailable() const;
        auto RegisterNewerIfAvailable(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IEnsureReadyOptions2>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IEnsureReadyOptions2<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManager
    {
        auto IsPackageReady(param::hstring const& package) const;
        auto IsPackageReadyByUri(winrt::Windows::Foundation::Uri const& packageUri) const;
        auto IsPackageSetReady(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet) const;
        auto EnsurePackageReadyAsync(param::hstring const& package, winrt::Microsoft::Windows::Management::Deployment::EnsureReadyOptions const& options) const;
        auto EnsurePackageReadyByUriAsync(winrt::Windows::Foundation::Uri const& packageUri, winrt::Microsoft::Windows::Management::Deployment::EnsureReadyOptions const& options) const;
        auto EnsurePackageSetReadyAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet, winrt::Microsoft::Windows::Management::Deployment::EnsureReadyOptions const& options) const;
        auto AddPackageAsync(param::hstring const& package, winrt::Microsoft::Windows::Management::Deployment::AddPackageOptions const& options) const;
        auto AddPackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri, winrt::Microsoft::Windows::Management::Deployment::AddPackageOptions const& options) const;
        auto AddPackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet, winrt::Microsoft::Windows::Management::Deployment::AddPackageOptions const& options) const;
        auto StagePackageAsync(param::hstring const& package, winrt::Microsoft::Windows::Management::Deployment::StagePackageOptions const& options) const;
        auto StagePackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri, winrt::Microsoft::Windows::Management::Deployment::StagePackageOptions const& options) const;
        auto StagePackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet, winrt::Microsoft::Windows::Management::Deployment::StagePackageOptions const& options) const;
        auto RegisterPackageAsync(param::hstring const& package, winrt::Microsoft::Windows::Management::Deployment::RegisterPackageOptions const& options) const;
        auto RegisterPackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri, winrt::Microsoft::Windows::Management::Deployment::RegisterPackageOptions const& options) const;
        auto RegisterPackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet, winrt::Microsoft::Windows::Management::Deployment::RegisterPackageOptions const& options) const;
        auto RemovePackageAsync(param::hstring const& package, winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions const& options) const;
        auto RemovePackageByFullNameAsync(param::hstring const& packageFullName, winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions const& options) const;
        auto RemovePackageByFamilyNameAsync(param::hstring const& packageFamilyName, winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions const& options) const;
        auto RemovePackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri, winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions const& options) const;
        auto RemovePackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet, winrt::Microsoft::Windows::Management::Deployment::RemovePackageOptions const& options) const;
        auto ResetPackageAsync(param::hstring const& package) const;
        auto ResetPackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri) const;
        auto ResetPackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet) const;
        auto RepairPackageAsync(param::hstring const& package) const;
        auto RepairPackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri) const;
        auto RepairPackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet) const;
        auto ProvisionPackageAsync(param::hstring const& package, winrt::Microsoft::Windows::Management::Deployment::ProvisionPackageOptions const& options) const;
        auto ProvisionPackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri, winrt::Microsoft::Windows::Management::Deployment::ProvisionPackageOptions const& options) const;
        auto ProvisionPackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet, winrt::Microsoft::Windows::Management::Deployment::ProvisionPackageOptions const& options) const;
        auto DeprovisionPackageAsync(param::hstring const& package) const;
        auto DeprovisionPackageByUriAsync(winrt::Windows::Foundation::Uri const& packageUri) const;
        auto DeprovisionPackageSetAsync(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet) const;
        auto IsPackageRegistrationPending(param::hstring const& packageFamilyName) const;
        auto IsPackageRegistrationPendingForUser(param::hstring const& userSecurityId, param::hstring const& packageFamilyName) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManager<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManager2
    {
        auto IsPackageReadyOrNewerAvailable(param::hstring const& package) const;
        auto IsPackageReadyOrNewerAvailableByUri(winrt::Windows::Foundation::Uri const& packageUri) const;
        auto IsPackageSetReadyOrNewerAvailable(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet) const;
        auto IsPackageProvisioned(param::hstring const& package) const;
        auto IsPackageProvisionedByUri(winrt::Windows::Foundation::Uri const& packageUri) const;
        auto IsPackageSetProvisioned(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManager2>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManager2<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManagerStatics
    {
        auto GetDefault() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManagerStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManagerStatics2
    {
        auto IsPackageDeploymentFeatureSupported(winrt::Microsoft::Windows::Management::Deployment::PackageDeploymentFeature const& feature) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentManagerStatics2>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentManagerStatics2<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentResult
    {
        [[nodiscard]] auto Status() const;
        [[nodiscard]] auto Error() const;
        [[nodiscard]] auto ExtendedError() const;
        [[nodiscard]] auto ErrorText() const;
        [[nodiscard]] auto ActivityId() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageDeploymentResult>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageDeploymentResult<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageRuntimeManager
    {
        auto AddPackageSet(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet) const;
        auto AddPackageSet(winrt::Microsoft::Windows::Management::Deployment::PackageSet const& packageSet, winrt::Microsoft::Windows::ApplicationModel::DynamicDependency::CreatePackageDependencyOptions const& createOptions, winrt::Microsoft::Windows::ApplicationModel::DynamicDependency::AddPackageDependencyOptions const& addOptions) const;
        auto RemovePackageSet(winrt::Microsoft::Windows::Management::Deployment::PackageSetRuntimeDisposition const& packageSetRuntimeDisposition) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManager>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageRuntimeManager<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageRuntimeManagerStatics
    {
        auto GetDefault() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageRuntimeManagerStatics>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageRuntimeManagerStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageSet
    {
        [[nodiscard]] auto Id() const;
        auto Id(param::hstring const& value) const;
        [[nodiscard]] auto PackageUri() const;
        auto PackageUri(winrt::Windows::Foundation::Uri const& value) const;
        [[nodiscard]] auto Items() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageSet>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageSet<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageSetItem
    {
        [[nodiscard]] auto Id() const;
        auto Id(param::hstring const& value) const;
        [[nodiscard]] auto PackageFamilyName() const;
        auto PackageFamilyName(param::hstring const& value) const;
        [[nodiscard]] auto MinVersion() const;
        auto MinVersion(winrt::Windows::ApplicationModel::PackageVersion const& value) const;
        [[nodiscard]] auto ProcessorArchitectureFilter() const;
        auto ProcessorArchitectureFilter(winrt::Microsoft::Windows::ApplicationModel::DynamicDependency::PackageDependencyProcessorArchitectures const& value) const;
        [[nodiscard]] auto PackageUri() const;
        auto PackageUri(winrt::Windows::Foundation::Uri const& value) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItem>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageSetItem<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageSetItemRuntimeDisposition
    {
        [[nodiscard]] auto PackageSetItemId() const;
        [[nodiscard]] auto PackageFullName() const;
        [[nodiscard]] auto PackageDependencyId() const;
        [[nodiscard]] auto PackageDependencyContextId() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageSetItemRuntimeDisposition>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageSetItemRuntimeDisposition<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageSetRuntimeDisposition
    {
        [[nodiscard]] auto PackageSetId() const;
        auto PackageSetId(param::hstring const& value) const;
        [[nodiscard]] auto PackageSetItemRuntimeDispositions() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageSetRuntimeDisposition>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageSetRuntimeDisposition<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageVolume
    {
        [[nodiscard]] auto IsSystemVolume() const;
        [[nodiscard]] auto MountPoint() const;
        [[nodiscard]] auto Name() const;
        [[nodiscard]] auto PackageStorePath() const;
        [[nodiscard]] auto SupportsHardLinks() const;
        [[nodiscard]] auto IsFullTrustPackageSupported() const;
        [[nodiscard]] auto IsAppxInstallSupported() const;
        auto IsRepairNeeded() const;
        auto Repair() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageVolume>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageVolume<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IPackageVolumeStatics
    {
        auto FindPackageVolumes() const;
        auto FindPackageVolumeByPath(param::hstring const& packageStorePath) const;
        auto FindPackageVolumeByName(param::hstring const& name) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IPackageVolumeStatics>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IPackageVolumeStatics<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IProvisionPackageOptions
    {
        [[nodiscard]] auto IsOptionalPackageFamilyNamesSupported() const;
        [[nodiscard]] auto OptionalPackageFamilyNames() const;
        [[nodiscard]] auto IsProjectionOrderPackageFamilyNamesSupported() const;
        [[nodiscard]] auto ProjectionOrderPackageFamilyNames() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IProvisionPackageOptions>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IProvisionPackageOptions<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IRegisterPackageOptions
    {
        [[nodiscard]] auto AppDataVolume() const;
        auto AppDataVolume(winrt::Microsoft::Windows::Management::Deployment::PackageVolume const& value) const;
        [[nodiscard]] auto DependencyPackageFamilyNames() const;
        [[nodiscard]] auto DependencyPackageUris() const;
        [[nodiscard]] auto OptionalPackageFamilyNames() const;
        [[nodiscard]] auto ExternalLocationUri() const;
        auto ExternalLocationUri(winrt::Windows::Foundation::Uri const& value) const;
        [[nodiscard]] auto AllowUnsigned() const;
        auto AllowUnsigned(bool value) const;
        [[nodiscard]] auto DeveloperMode() const;
        auto DeveloperMode(bool value) const;
        [[nodiscard]] auto ForceAppShutdown() const;
        auto ForceAppShutdown(bool value) const;
        [[nodiscard]] auto ForceTargetAppShutdown() const;
        auto ForceTargetAppShutdown(bool value) const;
        [[nodiscard]] auto ForceUpdateFromAnyVersion() const;
        auto ForceUpdateFromAnyVersion(bool value) const;
        [[nodiscard]] auto InstallAllResources() const;
        auto InstallAllResources(bool value) const;
        [[nodiscard]] auto StageInPlace() const;
        auto StageInPlace(bool value) const;
        [[nodiscard]] auto DeferRegistrationWhenPackagesAreInUse() const;
        auto DeferRegistrationWhenPackagesAreInUse(bool value) const;
        [[nodiscard]] auto IsExpectedDigestsSupported() const;
        [[nodiscard]] auto ExpectedDigests() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IRegisterPackageOptions>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IRegisterPackageOptions<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IRemovePackageOptions
    {
        [[nodiscard]] auto FailIfNotFound() const;
        auto FailIfNotFound(bool value) const;
        [[nodiscard]] auto PreserveApplicationData() const;
        auto PreserveApplicationData(bool value) const;
        [[nodiscard]] auto PreserveRoamableApplicationData() const;
        auto PreserveRoamableApplicationData(bool value) const;
        [[nodiscard]] auto RemoveForAllUsers() const;
        auto RemoveForAllUsers(bool value) const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IRemovePackageOptions>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IRemovePackageOptions<D>;
    };
    template <typename D>
    struct consume_Microsoft_Windows_Management_Deployment_IStagePackageOptions
    {
        [[nodiscard]] auto TargetVolume() const;
        auto TargetVolume(winrt::Microsoft::Windows::Management::Deployment::PackageVolume const& value) const;
        [[nodiscard]] auto DependencyPackageUris() const;
        [[nodiscard]] auto OptionalPackageFamilyNames() const;
        [[nodiscard]] auto OptionalPackageUris() const;
        [[nodiscard]] auto RelatedPackageUris() const;
        [[nodiscard]] auto ExternalLocationUri() const;
        auto ExternalLocationUri(winrt::Windows::Foundation::Uri const& value) const;
        [[nodiscard]] auto StubPackageOption() const;
        auto StubPackageOption(winrt::Microsoft::Windows::Management::Deployment::StubPackageOption const& value) const;
        [[nodiscard]] auto DeveloperMode() const;
        auto DeveloperMode(bool value) const;
        [[nodiscard]] auto ForceUpdateFromAnyVersion() const;
        auto ForceUpdateFromAnyVersion(bool value) const;
        [[nodiscard]] auto InstallAllResources() const;
        auto InstallAllResources(bool value) const;
        [[nodiscard]] auto RequiredContentGroupOnly() const;
        auto RequiredContentGroupOnly(bool value) const;
        [[nodiscard]] auto StageInPlace() const;
        auto StageInPlace(bool value) const;
        [[nodiscard]] auto AllowUnsigned() const;
        auto AllowUnsigned(bool value) const;
        [[nodiscard]] auto IsExpectedDigestsSupported() const;
        [[nodiscard]] auto ExpectedDigests() const;
    };
    template <> struct consume<winrt::Microsoft::Windows::Management::Deployment::IStagePackageOptions>
    {
        template <typename D> using type = consume_Microsoft_Windows_Management_Deployment_IStagePackageOptions<D>;
    };
    struct struct_Microsoft_Windows_Management_Deployment_PackageDeploymentProgress
    {
        int32_t Status;
        double Progress;
    };
    template <> struct abi<Microsoft::Windows::Management::Deployment::PackageDeploymentProgress>
    {
        using type = struct_Microsoft_Windows_Management_Deployment_PackageDeploymentProgress;
    };
}
#endif
