// C++/WinRT v2.0.250303.1

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

#pragma once
#ifndef WINRT_Windows_Security_Credentials_0_H
#define WINRT_Windows_Security_Credentials_0_H
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct IAsyncAction;
    struct Uri;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
{
    struct IPropertySet;
}
WINRT_EXPORT namespace winrt::Windows::Security::Cryptography::Core
{
    enum class CryptographicPublicKeyBlobType : int32_t;
}
WINRT_EXPORT namespace winrt::Windows::Storage::Streams
{
    struct IBuffer;
}
WINRT_EXPORT namespace winrt::Windows::System
{
    struct User;
}
WINRT_EXPORT namespace winrt::Windows::UI
{
    struct WindowId;
}
WINRT_EXPORT namespace winrt::Windows::Security::Credentials
{
    enum class ChallengeResponseKind : int32_t
    {
        VirtualizationBasedSecurityEnclave = 0,
    };
    enum class KeyCredentialAttestationStatus : int32_t
    {
        Success = 0,
        UnknownError = 1,
        NotSupported = 2,
        TemporaryFailure = 3,
    };
    enum class KeyCredentialCacheOption : int32_t
    {
        NoCache = 0,
        CacheWhenUnlocked = 1,
    };
    enum class KeyCredentialCreationOption : int32_t
    {
        ReplaceExisting = 0,
        FailIfExists = 1,
    };
    enum class KeyCredentialStatus : int32_t
    {
        Success = 0,
        UnknownError = 1,
        NotFound = 2,
        UserCanceled = 3,
        UserPrefersPassword = 4,
        CredentialAlreadyExists = 5,
        SecurityDeviceLocked = 6,
        AlgorithmNotSupported = 7,
    };
    enum class WebAccountPictureSize : int32_t
    {
        Size64x64 = 64,
        Size208x208 = 208,
        Size424x424 = 424,
        Size1080x1080 = 1080,
    };
    enum class WebAccountState : int32_t
    {
        None = 0,
        Connected = 1,
        Error = 2,
    };
    struct ICredentialFactory;
    struct IKeyCredential;
    struct IKeyCredential2;
    struct IKeyCredentialAttestationResult;
    struct IKeyCredentialCacheConfiguration;
    struct IKeyCredentialCacheConfigurationFactory;
    struct IKeyCredentialManagerCreateWithWindowStatics;
    struct IKeyCredentialManagerStatics;
    struct IKeyCredentialManagerStatics2;
    struct IKeyCredentialOperationResult;
    struct IKeyCredentialRetrievalResult;
    struct IKeyCredentialWithWindow;
    struct IPasswordCredential;
    struct IPasswordVault;
    struct IWebAccount;
    struct IWebAccount2;
    struct IWebAccountFactory;
    struct IWebAccountProvider;
    struct IWebAccountProvider2;
    struct IWebAccountProvider3;
    struct IWebAccountProvider4;
    struct IWebAccountProviderFactory;
    struct KeyCredential;
    struct KeyCredentialAttestationResult;
    struct KeyCredentialCacheConfiguration;
    struct KeyCredentialManager;
    struct KeyCredentialOperationResult;
    struct KeyCredentialRetrievalResult;
    struct PasswordCredential;
    struct PasswordCredentialPropertyStore;
    struct PasswordVault;
    struct WebAccount;
    struct WebAccountProvider;
    struct AttestationChallengeHandler;
}
namespace winrt::impl
{
    template <> struct category<winrt::Windows::Security::Credentials::ICredentialFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredential>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredential2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialAttestationResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfiguration>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfigurationFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialManagerCreateWithWindowStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialOperationResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialRetrievalResult>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IKeyCredentialWithWindow>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IPasswordCredential>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IPasswordVault>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccount>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccount2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccountFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccountProvider>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccountProvider2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccountProvider3>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccountProvider4>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::IWebAccountProviderFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredential>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialAttestationResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialCacheConfiguration>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialManager>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialOperationResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialRetrievalResult>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::PasswordCredential>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::PasswordCredentialPropertyStore>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::PasswordVault>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::WebAccount>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::WebAccountProvider>{ using type = class_category; };
    template <> struct category<winrt::Windows::Security::Credentials::ChallengeResponseKind>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialAttestationStatus>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialCacheOption>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialCreationOption>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Security::Credentials::KeyCredentialStatus>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Security::Credentials::WebAccountPictureSize>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Security::Credentials::WebAccountState>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Security::Credentials::AttestationChallengeHandler>{ using type = delegate_category; };
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredential> = L"Windows.Security.Credentials.KeyCredential";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialAttestationResult> = L"Windows.Security.Credentials.KeyCredentialAttestationResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialCacheConfiguration> = L"Windows.Security.Credentials.KeyCredentialCacheConfiguration";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialManager> = L"Windows.Security.Credentials.KeyCredentialManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialOperationResult> = L"Windows.Security.Credentials.KeyCredentialOperationResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialRetrievalResult> = L"Windows.Security.Credentials.KeyCredentialRetrievalResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::PasswordCredential> = L"Windows.Security.Credentials.PasswordCredential";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::PasswordCredentialPropertyStore> = L"Windows.Security.Credentials.PasswordCredentialPropertyStore";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::PasswordVault> = L"Windows.Security.Credentials.PasswordVault";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::WebAccount> = L"Windows.Security.Credentials.WebAccount";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::WebAccountProvider> = L"Windows.Security.Credentials.WebAccountProvider";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::ChallengeResponseKind> = L"Windows.Security.Credentials.ChallengeResponseKind";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialAttestationStatus> = L"Windows.Security.Credentials.KeyCredentialAttestationStatus";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialCacheOption> = L"Windows.Security.Credentials.KeyCredentialCacheOption";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialCreationOption> = L"Windows.Security.Credentials.KeyCredentialCreationOption";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::KeyCredentialStatus> = L"Windows.Security.Credentials.KeyCredentialStatus";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::WebAccountPictureSize> = L"Windows.Security.Credentials.WebAccountPictureSize";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::WebAccountState> = L"Windows.Security.Credentials.WebAccountState";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::ICredentialFactory> = L"Windows.Security.Credentials.ICredentialFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredential> = L"Windows.Security.Credentials.IKeyCredential";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredential2> = L"Windows.Security.Credentials.IKeyCredential2";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialAttestationResult> = L"Windows.Security.Credentials.IKeyCredentialAttestationResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfiguration> = L"Windows.Security.Credentials.IKeyCredentialCacheConfiguration";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfigurationFactory> = L"Windows.Security.Credentials.IKeyCredentialCacheConfigurationFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialManagerCreateWithWindowStatics> = L"Windows.Security.Credentials.IKeyCredentialManagerCreateWithWindowStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics> = L"Windows.Security.Credentials.IKeyCredentialManagerStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics2> = L"Windows.Security.Credentials.IKeyCredentialManagerStatics2";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialOperationResult> = L"Windows.Security.Credentials.IKeyCredentialOperationResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialRetrievalResult> = L"Windows.Security.Credentials.IKeyCredentialRetrievalResult";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IKeyCredentialWithWindow> = L"Windows.Security.Credentials.IKeyCredentialWithWindow";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IPasswordCredential> = L"Windows.Security.Credentials.IPasswordCredential";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IPasswordVault> = L"Windows.Security.Credentials.IPasswordVault";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccount> = L"Windows.Security.Credentials.IWebAccount";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccount2> = L"Windows.Security.Credentials.IWebAccount2";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccountFactory> = L"Windows.Security.Credentials.IWebAccountFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccountProvider> = L"Windows.Security.Credentials.IWebAccountProvider";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccountProvider2> = L"Windows.Security.Credentials.IWebAccountProvider2";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccountProvider3> = L"Windows.Security.Credentials.IWebAccountProvider3";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccountProvider4> = L"Windows.Security.Credentials.IWebAccountProvider4";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::IWebAccountProviderFactory> = L"Windows.Security.Credentials.IWebAccountProviderFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Security::Credentials::AttestationChallengeHandler> = L"Windows.Security.Credentials.AttestationChallengeHandler";
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::ICredentialFactory>{ 0x54EF13A1,0xBF26,0x47B5,{ 0x97,0xDD,0xDE,0x77,0x9B,0x7C,0xAD,0x58 } }; // 54EF13A1-BF26-47B5-97DD-DE779B7CAD58
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredential>{ 0x9585EF8D,0x457B,0x4847,{ 0xB1,0x1A,0xFA,0x96,0x0B,0xBD,0xB1,0x38 } }; // 9585EF8D-457B-4847-B11A-FA960BBDB138
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredential2>{ 0x3B7C5E09,0x7B72,0x5A05,{ 0xB2,0xF0,0x71,0x19,0xCA,0x3F,0xD5,0xDF } }; // 3B7C5E09-7B72-5A05-B2F0-7119CA3FD5DF
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialAttestationResult>{ 0x78AAB3A1,0xA3C1,0x4103,{ 0xB6,0xCC,0x47,0x2C,0x44,0x17,0x1C,0xBB } }; // 78AAB3A1-A3C1-4103-B6CC-472C44171CBB
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfiguration>{ 0x438BD21A,0x61FF,0x5468,{ 0x95,0xA6,0xB1,0xD5,0x21,0x6E,0x45,0x8D } }; // 438BD21A-61FF-5468-95A6-B1D5216E458D
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfigurationFactory>{ 0x9948C31B,0xC827,0x5B58,{ 0x94,0x42,0x40,0xAC,0xD8,0xAB,0x1E,0x7D } }; // 9948C31B-C827-5B58-9442-40ACD8AB1E7D
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialManagerCreateWithWindowStatics>{ 0x30B1B9C9,0x61EF,0x43E8,{ 0x88,0xAC,0xCC,0x43,0x3B,0x38,0xD1,0xA6 } }; // 30B1B9C9-61EF-43E8-88AC-CC433B38D1A6
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics>{ 0x6AAC468B,0x0EF1,0x4CE0,{ 0x82,0x90,0x41,0x06,0xDA,0x6A,0x63,0xB5 } }; // 6AAC468B-0EF1-4CE0-8290-4106DA6A63B5
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics2>{ 0x6439895D,0x68C5,0x521B,{ 0x9D,0xC4,0x7C,0x19,0x97,0x94,0xF0,0xD8 } }; // 6439895D-68C5-521B-9DC4-7C199794F0D8
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialOperationResult>{ 0xF53786C1,0x5261,0x4CDD,{ 0x97,0x6D,0xCC,0x90,0x9A,0xC7,0x16,0x20 } }; // F53786C1-5261-4CDD-976D-CC909AC71620
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialRetrievalResult>{ 0x58CD7703,0x8D87,0x4249,{ 0x9B,0x58,0xF6,0x59,0x8C,0xC9,0x64,0x4E } }; // 58CD7703-8D87-4249-9B58-F6598CC9644E
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IKeyCredentialWithWindow>{ 0x050DEB3B,0xB19C,0x4635,{ 0x9D,0xF6,0x56,0x50,0xD6,0x6C,0x62,0xB1 } }; // 050DEB3B-B19C-4635-9DF6-5650D66C62B1
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IPasswordCredential>{ 0x6AB18989,0xC720,0x41A7,{ 0xA6,0xC1,0xFE,0xAD,0xB3,0x63,0x29,0xA0 } }; // 6AB18989-C720-41A7-A6C1-FEADB36329A0
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IPasswordVault>{ 0x61FD2C0B,0xC8D4,0x48C1,{ 0xA5,0x4F,0xBC,0x5A,0x64,0x20,0x5A,0xF2 } }; // 61FD2C0B-C8D4-48C1-A54F-BC5A64205AF2
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccount>{ 0x69473EB2,0x8031,0x49BE,{ 0x80,0xBB,0x96,0xCB,0x46,0xD9,0x9A,0xBA } }; // 69473EB2-8031-49BE-80BB-96CB46D99ABA
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccount2>{ 0x7B56D6F8,0x990B,0x4EB5,{ 0x94,0xA7,0x56,0x21,0xF3,0xA8,0xB8,0x24 } }; // 7B56D6F8-990B-4EB5-94A7-5621F3A8B824
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccountFactory>{ 0xAC9AFB39,0x1DE9,0x4E92,{ 0xB7,0x8F,0x05,0x81,0xA8,0x7F,0x6E,0x5C } }; // AC9AFB39-1DE9-4E92-B78F-0581A87F6E5C
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccountProvider>{ 0x29DCC8C3,0x7AB9,0x4A7C,{ 0xA3,0x36,0xB9,0x42,0xF9,0xDB,0xF7,0xC7 } }; // 29DCC8C3-7AB9-4A7C-A336-B942F9DBF7C7
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccountProvider2>{ 0x4A01EB05,0x4E42,0x41D4,{ 0xB5,0x18,0xE0,0x08,0xA5,0x16,0x36,0x14 } }; // 4A01EB05-4E42-41D4-B518-E008A5163614
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccountProvider3>{ 0xDA1C518B,0x970D,0x4D49,{ 0x82,0x5C,0xF2,0x70,0x6F,0x8C,0xA7,0xFE } }; // DA1C518B-970D-4D49-825C-F2706F8CA7FE
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccountProvider4>{ 0x718FD8DB,0xE796,0x4210,{ 0xB7,0x4E,0x84,0xD2,0x98,0x94,0xB0,0x80 } }; // 718FD8DB-E796-4210-B74E-84D29894B080
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::IWebAccountProviderFactory>{ 0x1D767DF1,0xE1E1,0x4B9A,{ 0xA7,0x74,0x5C,0x7C,0x7E,0x3B,0xF3,0x71 } }; // 1D767DF1-E1E1-4B9A-A774-5C7C7E3BF371
    template <> inline constexpr guid guid_v<winrt::Windows::Security::Credentials::AttestationChallengeHandler>{ 0xF6AE35B0,0xD805,0x587D,{ 0x94,0x4F,0xA0,0x9B,0xD0,0x32,0xAC,0xF5 } }; // F6AE35B0-D805-587D-944F-A09BD032ACF5
    template <> struct default_interface<winrt::Windows::Security::Credentials::KeyCredential>{ using type = winrt::Windows::Security::Credentials::IKeyCredential; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::KeyCredentialAttestationResult>{ using type = winrt::Windows::Security::Credentials::IKeyCredentialAttestationResult; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::KeyCredentialCacheConfiguration>{ using type = winrt::Windows::Security::Credentials::IKeyCredentialCacheConfiguration; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::KeyCredentialOperationResult>{ using type = winrt::Windows::Security::Credentials::IKeyCredentialOperationResult; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::KeyCredentialRetrievalResult>{ using type = winrt::Windows::Security::Credentials::IKeyCredentialRetrievalResult; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::PasswordCredential>{ using type = winrt::Windows::Security::Credentials::IPasswordCredential; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::PasswordCredentialPropertyStore>{ using type = winrt::Windows::Foundation::Collections::IPropertySet; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::PasswordVault>{ using type = winrt::Windows::Security::Credentials::IPasswordVault; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::WebAccount>{ using type = winrt::Windows::Security::Credentials::IWebAccount; };
    template <> struct default_interface<winrt::Windows::Security::Credentials::WebAccountProvider>{ using type = winrt::Windows::Security::Credentials::IWebAccountProvider; };
    template <> struct abi<winrt::Windows::Security::Credentials::ICredentialFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreatePasswordCredential(void*, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredential>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Name(void**) noexcept = 0;
            virtual int32_t __stdcall RetrievePublicKeyWithDefaultBlobType(void**) noexcept = 0;
            virtual int32_t __stdcall RetrievePublicKeyWithBlobType(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall RequestSignAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetAttestationAsync(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredential2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall RequestDeriveSharedSecretAsync(struct struct_Windows_UI_WindowId, void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall RetrieveAuthorizationContext(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialAttestationResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CertificateChainBuffer(void**) noexcept = 0;
            virtual int32_t __stdcall get_AttestationBuffer(void**) noexcept = 0;
            virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfiguration>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_CacheOption(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_Timeout(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_UsageCount(uint32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfigurationFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateInstance(int32_t, int64_t, uint32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialManagerCreateWithWindowStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall RequestCreateForWindowAsync(struct struct_Windows_UI_WindowId, void*, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall IsSupportedAsync(void**) noexcept = 0;
            virtual int32_t __stdcall RenewAttestationAsync(void**) noexcept = 0;
            virtual int32_t __stdcall RequestCreateAsync(void*, int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall OpenAsync(void*, void**) noexcept = 0;
            virtual int32_t __stdcall DeleteAsync(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall RequestCreateAsync(void*, int32_t, void*, void*, void*, struct struct_Windows_UI_WindowId, int32_t, void*, void**) noexcept = 0;
            virtual int32_t __stdcall OpenAsync(void*, int32_t, void*, void**) noexcept = 0;
            virtual int32_t __stdcall GetSecureId(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialOperationResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Result(void**) noexcept = 0;
            virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialRetrievalResult>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Credential(void**) noexcept = 0;
            virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IKeyCredentialWithWindow>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall RequestSignForWindowAsync(struct struct_Windows_UI_WindowId, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IPasswordCredential>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Resource(void**) noexcept = 0;
            virtual int32_t __stdcall put_Resource(void*) noexcept = 0;
            virtual int32_t __stdcall get_UserName(void**) noexcept = 0;
            virtual int32_t __stdcall put_UserName(void*) noexcept = 0;
            virtual int32_t __stdcall get_Password(void**) noexcept = 0;
            virtual int32_t __stdcall put_Password(void*) noexcept = 0;
            virtual int32_t __stdcall RetrievePassword() noexcept = 0;
            virtual int32_t __stdcall get_Properties(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IPasswordVault>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall Add(void*) noexcept = 0;
            virtual int32_t __stdcall Remove(void*) noexcept = 0;
            virtual int32_t __stdcall Retrieve(void*, void*, void**) noexcept = 0;
            virtual int32_t __stdcall FindAllByResource(void*, void**) noexcept = 0;
            virtual int32_t __stdcall FindAllByUserName(void*, void**) noexcept = 0;
            virtual int32_t __stdcall RetrieveAll(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccount>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_WebAccountProvider(void**) noexcept = 0;
            virtual int32_t __stdcall get_UserName(void**) noexcept = 0;
            virtual int32_t __stdcall get_State(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccount2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Id(void**) noexcept = 0;
            virtual int32_t __stdcall get_Properties(void**) noexcept = 0;
            virtual int32_t __stdcall GetPictureAsync(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall SignOutAsync(void**) noexcept = 0;
            virtual int32_t __stdcall SignOutWithClientIdAsync(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccountFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateWebAccount(void*, void*, int32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccountProvider>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_Id(void**) noexcept = 0;
            virtual int32_t __stdcall get_DisplayName(void**) noexcept = 0;
            virtual int32_t __stdcall get_IconUri(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccountProvider2>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_DisplayPurpose(void**) noexcept = 0;
            virtual int32_t __stdcall get_Authority(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccountProvider3>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_User(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccountProvider4>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsSystemProvider(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::IWebAccountProviderFactory>
    {
        struct WINRT_IMPL_NOVTABLE type : inspectable_abi
        {
            virtual int32_t __stdcall CreateWebAccountProvider(void*, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Security::Credentials::AttestationChallengeHandler>
    {
        struct WINRT_IMPL_NOVTABLE type : unknown_abi
        {
            virtual int32_t __stdcall Invoke(void*, void**) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_ICredentialFactory
    {
        auto CreatePasswordCredential(param::hstring const& resource, param::hstring const& userName, param::hstring const& password) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::ICredentialFactory>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_ICredentialFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredential
    {
        [[nodiscard]] auto Name() const;
        auto RetrievePublicKey() const;
        auto RetrievePublicKey(winrt::Windows::Security::Cryptography::Core::CryptographicPublicKeyBlobType const& blobType) const;
        auto RequestSignAsync(winrt::Windows::Storage::Streams::IBuffer const& data) const;
        auto GetAttestationAsync() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredential>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredential<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredential2
    {
        auto RequestDeriveSharedSecretAsync(winrt::Windows::UI::WindowId const& windowId, param::hstring const& message, winrt::Windows::Storage::Streams::IBuffer const& encryptedRequest) const;
        auto RetrieveAuthorizationContext(winrt::Windows::Storage::Streams::IBuffer const& encryptedRequest) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredential2>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredential2<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialAttestationResult
    {
        [[nodiscard]] auto CertificateChainBuffer() const;
        [[nodiscard]] auto AttestationBuffer() const;
        [[nodiscard]] auto Status() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialAttestationResult>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialAttestationResult<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialCacheConfiguration
    {
        [[nodiscard]] auto CacheOption() const;
        [[nodiscard]] auto Timeout() const;
        [[nodiscard]] auto UsageCount() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfiguration>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialCacheConfiguration<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialCacheConfigurationFactory
    {
        auto CreateInstance(winrt::Windows::Security::Credentials::KeyCredentialCacheOption const& cacheOption, winrt::Windows::Foundation::TimeSpan const& timeout, uint32_t usageCount) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialCacheConfigurationFactory>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialCacheConfigurationFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialManagerCreateWithWindowStatics
    {
        auto RequestCreateForWindowAsync(winrt::Windows::UI::WindowId const& window, param::hstring const& name, winrt::Windows::Security::Credentials::KeyCredentialCreationOption const& option) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialManagerCreateWithWindowStatics>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialManagerCreateWithWindowStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialManagerStatics
    {
        auto IsSupportedAsync() const;
        auto RenewAttestationAsync() const;
        auto RequestCreateAsync(param::hstring const& name, winrt::Windows::Security::Credentials::KeyCredentialCreationOption const& option) const;
        auto OpenAsync(param::hstring const& name) const;
        auto DeleteAsync(param::hstring const& name) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialManagerStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialManagerStatics2
    {
        auto RequestCreateAsync(param::hstring const& name, winrt::Windows::Security::Credentials::KeyCredentialCreationOption const& option, param::hstring const& algorithm, param::hstring const& message, winrt::Windows::Security::Credentials::KeyCredentialCacheConfiguration const& cacheConfiguration, winrt::Windows::UI::WindowId const& windowId, winrt::Windows::Security::Credentials::ChallengeResponseKind const& callbackType, winrt::Windows::Security::Credentials::AttestationChallengeHandler const& attestationCallback) const;
        auto OpenAsync(param::hstring const& name, winrt::Windows::Security::Credentials::ChallengeResponseKind const& callbackType, winrt::Windows::Security::Credentials::AttestationChallengeHandler const& attestationCallback) const;
        auto GetSecureId() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialManagerStatics2>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialManagerStatics2<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialOperationResult
    {
        [[nodiscard]] auto Result() const;
        [[nodiscard]] auto Status() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialOperationResult>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialOperationResult<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialRetrievalResult
    {
        [[nodiscard]] auto Credential() const;
        [[nodiscard]] auto Status() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialRetrievalResult>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialRetrievalResult<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IKeyCredentialWithWindow
    {
        auto RequestSignForWindowAsync(winrt::Windows::UI::WindowId const& window, winrt::Windows::Storage::Streams::IBuffer const& data) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IKeyCredentialWithWindow>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IKeyCredentialWithWindow<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IPasswordCredential
    {
        [[nodiscard]] auto Resource() const;
        auto Resource(param::hstring const& resource) const;
        [[nodiscard]] auto UserName() const;
        auto UserName(param::hstring const& userName) const;
        [[nodiscard]] auto Password() const;
        auto Password(param::hstring const& password) const;
        auto RetrievePassword() const;
        [[nodiscard]] auto Properties() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IPasswordCredential>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IPasswordCredential<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IPasswordVault
    {
        auto Add(winrt::Windows::Security::Credentials::PasswordCredential const& credential) const;
        auto Remove(winrt::Windows::Security::Credentials::PasswordCredential const& credential) const;
        auto Retrieve(param::hstring const& resource, param::hstring const& userName) const;
        auto FindAllByResource(param::hstring const& resource) const;
        auto FindAllByUserName(param::hstring const& userName) const;
        auto RetrieveAll() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IPasswordVault>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IPasswordVault<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccount
    {
        [[nodiscard]] auto WebAccountProvider() const;
        [[nodiscard]] auto UserName() const;
        [[nodiscard]] auto State() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccount>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccount<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccount2
    {
        [[nodiscard]] auto Id() const;
        [[nodiscard]] auto Properties() const;
        auto GetPictureAsync(winrt::Windows::Security::Credentials::WebAccountPictureSize const& desizedSize) const;
        auto SignOutAsync() const;
        auto SignOutAsync(param::hstring const& clientId) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccount2>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccount2<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccountFactory
    {
        auto CreateWebAccount(winrt::Windows::Security::Credentials::WebAccountProvider const& webAccountProvider, param::hstring const& userName, winrt::Windows::Security::Credentials::WebAccountState const& state) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccountFactory>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccountFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccountProvider
    {
        [[nodiscard]] auto Id() const;
        [[nodiscard]] auto DisplayName() const;
        [[nodiscard]] auto IconUri() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccountProvider>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccountProvider<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccountProvider2
    {
        [[nodiscard]] auto DisplayPurpose() const;
        [[nodiscard]] auto Authority() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccountProvider2>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccountProvider2<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccountProvider3
    {
        [[nodiscard]] auto User() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccountProvider3>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccountProvider3<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccountProvider4
    {
        [[nodiscard]] auto IsSystemProvider() const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccountProvider4>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccountProvider4<D>;
    };
    template <typename D>
    struct consume_Windows_Security_Credentials_IWebAccountProviderFactory
    {
        auto CreateWebAccountProvider(param::hstring const& id, param::hstring const& displayName, winrt::Windows::Foundation::Uri const& iconUri) const;
    };
    template <> struct consume<winrt::Windows::Security::Credentials::IWebAccountProviderFactory>
    {
        template <typename D> using type = consume_Windows_Security_Credentials_IWebAccountProviderFactory<D>;
    };
}
#endif
