Initial split of internal and external api types.

I think seeing "internal" everywhere makes the code read much more awkwardly than "api".