The return type is not part of the method signature, so from the language perspective the interface is declaring the same method twice.
From Microsoft's C# Programming Guide:
A return type of a method is not part of the signature of the method for the purposes of method overloading. However, it is part of the signature of the method when determining the compatibility between a delegate and the method that it points to.