Google Play Services or microg is also required.
Edit to clarify: Signal sets up a background connection instead, which still results in real-time notifications (the same way that Wire works on a phone without Google Play services)
A year ago or two, I wanted to build Signal for Android without the proprietary library that talks with google play services. It was possible by modifying the source code a bit, because the code checks for the presence of the handles the absence of the Google play Services and enables some sort of fallback.
I would not know if it is still the case today, I don't currently own an Android device.