We're in the same situation with properties, e.g. `ol.layer.LayerProperty.OPACITY` and `change` events (e.g. `changed:center`).

Internally, I think we should use the `@enum`s, since this allows the compiler to type check and catch typos. Users should can use either the `@enum` (if it is exported) or simply a string if they wish.