Initial split of internal and external api types.

Maybe a comment on when to add types here and when not to.