It's easy to find guides to calculating the transmitted direction of light given an incoming direction, the normal, and indexes of refraction. However, I can't find anything about determining the normal, given all the other information. That's understandable because it's a bit of an odd thing to do, but I think I need it in my bidirectional path tracer to correctly weight paths that involve a microfacet surface. Even if it turns out that I don't, at this point I'm curious. I know that it's not possible if both indexes of refraction are the same, but that's fine.
See equation (16) in Microfacet Models for Refraction through Rough Surfaces : $-(\eta_i w_i + \eta_o w_o)$ which you'll probably want to normalize. $\eta$ are the two indices of refraction and $w$ the two vectors (they use $i$ and $o$ in the paper). Also look at the left part of figure 7 on the same page to see where all the vectors are pointing.
It should be possible I think. Take the reflection equation:
R = 2*Dot(N,I)*N -I, where I is the incidence.
Make an equation for every component of the vector i.e. x,y,z
You now have 3 equations and 3 unknowns. However, due to Dot(N,I)*N, I don't think this system is linear. So a unique solution probably wont exist.
But why do you need this? If you have an intersection point at a surface, you should have the normal for that surface?
Hope this helps