Are there such thing as header files in unity/C#?

I am new to unity, and I love organizing. This is my issue: say I have two different scripts, Sword and Spear. Two of which share common stuff, such as an enum Size {Small, Medium, Large}, they also share the same class DamageAttributes, which contains information regarding their damage as well as methods to calculate them. This is my attempt to abstract my actual problem, what I would like to do is to declare the enum and the classes in a fashion similar to .h in C++, so I have a place where I know they will be, and I can put other stuff that will be shared into it as well. Is there a good way to implement this?