Also add type forward declarations to avoid breaking IDE features (because type name is not known from the header only).