﻿// C++/WinRT v1.0.180821.2

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

#pragma once
#include "winrt/impl/Windows.UI.Core.AnimationMetrics.0.h"

WINRT_EXPORT namespace winrt::Windows::UI::Core::AnimationMetrics {

struct WINRT_EBO IAnimationDescription :
    Windows::Foundation::IInspectable,
    impl::consume_t<IAnimationDescription>
{
    IAnimationDescription(std::nullptr_t = nullptr) noexcept {}
};

struct WINRT_EBO IAnimationDescriptionFactory :
    Windows::Foundation::IInspectable,
    impl::consume_t<IAnimationDescriptionFactory>
{
    IAnimationDescriptionFactory(std::nullptr_t = nullptr) noexcept {}
};

struct WINRT_EBO IOpacityAnimation :
    Windows::Foundation::IInspectable,
    impl::consume_t<IOpacityAnimation>,
    impl::require<IOpacityAnimation, Windows::UI::Core::AnimationMetrics::IPropertyAnimation>
{
    IOpacityAnimation(std::nullptr_t = nullptr) noexcept {}
};

struct WINRT_EBO IPropertyAnimation :
    Windows::Foundation::IInspectable,
    impl::consume_t<IPropertyAnimation>
{
    IPropertyAnimation(std::nullptr_t = nullptr) noexcept {}
};

struct WINRT_EBO IScaleAnimation :
    Windows::Foundation::IInspectable,
    impl::consume_t<IScaleAnimation>,
    impl::require<IScaleAnimation, Windows::UI::Core::AnimationMetrics::IPropertyAnimation>
{
    IScaleAnimation(std::nullptr_t = nullptr) noexcept {}
};

}
