// C++/WinRT v2.0.250303.1

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

#pragma once
#ifndef WINRT_Windows_UI_Shell_Tasks_2_H
#define WINRT_Windows_UI_Shell_Tasks_2_H
#include "winrt/impl/Windows.Foundation.1.h"
#include "winrt/impl/Windows.UI.Shell.Tasks.1.h"
WINRT_EXPORT namespace winrt::Windows::UI::Shell::Tasks
{
    struct WINRT_IMPL_EMPTY_BASES AppTaskContent : winrt::Windows::UI::Shell::Tasks::IAppTaskContent
    {
        AppTaskContent(std::nullptr_t) noexcept {}
        AppTaskContent(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Shell::Tasks::IAppTaskContent(ptr, take_ownership_from_abi) {}
        static auto CreateSequenceOfSteps(array_view<hstring const> completedSteps, param::hstring const& executingStep);
        static auto CreatePreviewThumbnail(winrt::Windows::Foundation::Uri const& imageUri, param::hstring const& executingStep);
        static auto CreateTextSummaryResult(param::hstring const& text);
        static auto CreateGeneratedAssetsResult(array_view<winrt::Windows::UI::Shell::Tasks::AppTaskResultAsset const> assets);
        [[nodiscard]] static auto MaxButtons();
    };
    struct WINRT_IMPL_EMPTY_BASES AppTaskInfo : winrt::Windows::UI::Shell::Tasks::IAppTaskInfo,
        impl::require<AppTaskInfo, winrt::Windows::UI::Shell::Tasks::IAppTaskInfo2>
    {
        AppTaskInfo(std::nullptr_t) noexcept {}
        AppTaskInfo(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Shell::Tasks::IAppTaskInfo(ptr, take_ownership_from_abi) {}
        static auto IsSupported();
        static auto FindAll();
        static auto Create(param::hstring const& title, param::hstring const& subtitle, winrt::Windows::Foundation::Uri const& deepLink, winrt::Windows::Foundation::Uri const& iconUri, winrt::Windows::UI::Shell::Tasks::AppTaskContent const& content);
    };
    struct WINRT_IMPL_EMPTY_BASES AppTaskResultAsset : winrt::Windows::UI::Shell::Tasks::IAppTaskResultAsset
    {
        AppTaskResultAsset(std::nullptr_t) noexcept {}
        AppTaskResultAsset(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::UI::Shell::Tasks::IAppTaskResultAsset(ptr, take_ownership_from_abi) {}
        AppTaskResultAsset(param::hstring const& name, param::hstring const& context, winrt::Windows::Foundation::Uri const& iconUri, winrt::Windows::Foundation::Uri const& assetUri);
    };
}
#endif
