Gemstone refraction and reflection

I would like to show ring with gemstone inside three.js. Is it possible to get f.e. diamond refraction and reflection like here: link. I would like to get gold (PBR) roughness + metalness + normal map and diamond with only refraction shader (hard cut).

How to do it from scratch or how to convert that shader from link to three.js?

Have you seen the WebGL / Material / Reflectivity example? With a more faceted model like the one in your example it looks like it would give a similar effect.