What is the argument against declaring protected-access members on interfaces? This, for example, is invalid:
public interface IOrange
{
public OrangePee
An interface is just like the shape of a key.
It's not the key.
It's not the lock.
It's just the slim contact point.
For this reason all the members of the interface (that defines the shape of the key) must be public.
For a key to open a lock it is important that they both share the same shape.
By making the shape (the interface) public, you can let others create compatible locks or compatible keys.
Otherwise, making it (the interface) internal you will not allow others to create compatible locks or compatible keys.