Yes, this is impossible. It has been requested elsewhere (under the limitation you mention that the two functions take strictly different arguments) but I don’t know if it’s on anyone’s roadmap to do this (maybe by 2.0).
What you should do is have AB define close!, and then A and B add methods to it
# in AB
# no methods, just defining the name
function close! end
export close!
# in A
import AB: close!
close!(x) = #...