Для пространства имен нет спецификаторов доступа, вы не можете этого сделать.
Спецификаторы доступа предназначены только для класса / структуры.
Если вы не хотите предоставлять определенные классы, не помещайте их в заголовочный файл, который вы предоставляете пользователям, Если пользователи не могут видетькласс существует, они не будут его использовать.
"NmspPublic.h", чтобы поделиться с другими
namespace Nmsp {
void startSomeProcess();
}
"NmspPrivate.h" для внутреннего хранения
#inlcude "NmspPublic.h"
namespace Nmsp {
class Priv{};
}