Honestly curious question: why do you think an interface adds complexity?
An interface specifies a contract that its users can depend on. Having one saves me from reading implementations of dependencies when reading a class.