#3 is wrong-ish: that means that you’ll have a copy of your constant in each instance of the class, which might or might not be a problem, but is clearly sub-optimal.
1 and 2 are very similar, it all depends on whether there are other classes or functions in that file.
If there are other classes/functions then decide if those other classes should see/depend on that constant.
If there aren’t other classes/functions in the file it doesn’t really make any difference I can think of.