Let’s say that I have a method with the signature:
public static bool ValidDateToSend(DateTime date, string frequency)
Inside of the method is a switch on frequency.
Would changing the frequency from a string to a public enum, be considered a refactor, or is that going too far? Since this is a public method, there could potentially be many references outside of this code. The strict definition of refactoring (and what I believe is meant by fearless refactoring) is
disciplined technique for restructuring an existing body of code,
altering its internal structure without changing its external behavior
It seems to me that changing a method parameter to using a non-compatible type would indeed constitute “changing its external behavior”.
The “external behavior” is the behavior of the system itself in terms of inputs and outputs. Modifying a signature is definitely a refactoring, although performing it safely may be difficult. The only exception to this is when your product is an API, in which case modifying a signature would affect customers and would not be just a refactoring.