text: /*
   * Copyright (c) Contributors to the Open 3D Engine Project.
   * For complete copyright and license terms please see the LICENSE at the root of this distribution.
   *
   * SPDX-License-Identifier: Apache-2.0 OR MIT
   *
   */
  #pragma once
  
  #include <AzCore/EBus/EBus.h>
  #include <AzCore/Component/EntityId.h>
  #include <AzCore/Math/Vector3.h>
  
  namespace GradientSignal
  {
      /**
      * Bus enabling gradient previewer to be refreshed remotely via event bus
      */
      class GradientPreviewRequests
          : public AZ::EBusTraits
      {
      public:
          ////////////////////////////////////////////////////////////////////////
          // EBusTraits
          static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Multiple;
          static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById;
          using BusIdType = AZ::EntityId;
          using MutexType = AZStd::recursive_mutex;
          ////////////////////////////////////////////////////////////////////////
  
          virtual ~GradientPreviewRequests() = default;
  
          virtual void Refresh() = 0;
          virtual AZ::EntityId CancelRefresh() = 0;
      };
  
      using GradientPreviewRequestBus = AZ::EBus<GradientPreviewRequests>;
  
  } // namespace GradientSignal
  