You need to put UFUNCTION() on function deceleration of interface, otherwise UHT will ignore it and do add function to reflection system as well won’t generate Execute_* function for that function, thats why it say it’s not declared.
If UHT gives you any error then it means what you doing is not supported by UE4 reflection system. In that case you can make blueprint static function else where.
Note that if you use that interface only in C++ you don’t need to use Execute_* function as well as UFUNCTION() and just call function directly as all you need to do in C++ is add parent to class to implement interface, Execute_ is only to forward function call to Blueprint system as UE4 have no chance to intercept normal C++ function calls. It’s exact same issue as with events.