Cant use Enum inside Interface Class

I’m Trying To use my enum which created on pawn class, inside a Interface class
but every time i get compile Error: Expected the name of a previously defined enum

here is my Pawn Class header codes thatimplement my interface function which is a blueprintnative event :

    #pragma once
    
    #include "CoreMinimal.h"
    #include "GameFramework/Pawn.h"
    #include "ChopperInterface.h"
    #include "Chopper.generated.h"
    
    UENUM(BlueprintType)
    enum EChopperAttackTypeEnum
    {
    	None			UMETA(DisplayName = "None"),
    	ChopperWeapon	UMETA(DisplayName = "Chopper Weapon"),
    	GunnerWeapon	UMETA(DisplayName = "Gunner Weapon"),
    	RPGWeapon		UMETA(DisplayName = "RPG Weapon"),
    };
    
    UCLASS()
    class SINCEREMEN_API AChopper : public APawn, public IChopperInterface
    {
    	GENERATED_BODY()
    
    virtual void SetChopperAttackType_Implementation(TEnumAsByte NewAttackType) override;
    };

and this is my interface class:

#pragma once

#include "CoreMinimal.h"
#include "Engine.h"
#include "UObject/Interface.h"
#include "ChopperInterface.generated.h"

class AChopper;
enum EChopperAttackTypeEnum;

UINTERFACE(Blueprintable, MinimalAPI)
class UChopperInterface : public UInterface
{
	GENERATED_BODY()
};


class SINCEREMEN_API IChopperInterface
{
	GENERATED_BODY()

public:

UFUNCTION(BlueprintCallable, BlueprintNativeEvent, category = "Chopper Interface")
void SetChopperAttackType(TEnumAsByte NewAttackType);
};

when i remove UFUNCTION Property it compiles fine, but i need it to be BlueprintNativeEvent.

Maybe this?

void SetChopperAttackType(TEnumAsByte<EChopperAttackTypeEnum> NewAttackType);

try
enum class EChopperAttackTypeEnum:uint8
instead of
enum EChopperAttackTypeEnum

thanks for the answer, I also did that, but some how when i remove UFUNCTION property it works fine… but when i add that i get Error: Expected the name of a previously defined enum

sound weird to me…

thanks shiggi for the correction, that was fool mistake, i fix that too, but still get this error

Error: Expected the name of a previously defined enum

My opinion about this. TEnumAsByte not supported by the blueprint yet. Because it’s a template;
Try something like this:

UFUNCTION(BlueprintNativeEvent, BlueprintCallable, category = "Chopper Interface")
 void SetChopperAttackType(EChopperAttackTypeEnum NewAttackType);

or look work around if it’s possible.

Place the enum in a separate header file and include it instead of forward declaring it

Thanks soo much Ali Akbar, it fixed my problem
i made a new actor and declare my Enum there so it works fine now

thanks yusuf, i made enum class EChopperAttackTypeEnum:uint8 in a seperate actor and use it in my class, with enum EchopperAttackType it wasnt working even in seperate class