Вы не можете использовать перечисляемые значения, если они не видны. Если заголовок слишком велик для включения, почему бы просто не поместить enum в его собственный заголовок и включать только это?

я есть enum, который я объявил в каком-то файле .h:

typedef enum {
    NONE,
    ONE,
    TWO,
    THREE
} MYENUM;

в отдельном .cpp я не могу сделать это:

extern enum MYENUM; //works
extern MYENUM TWO; //makes sence, TWO is not an INSTANCE of MYENUM...

как сделать это, не включая весь заголовок, в котором объявлен enum?

Ответы на вопрос(1)

Ваш ответ на вопрос