Marks the annotated declaration as deprecated. In contrast to Deprecated, severity of the reported diagnostic is not a constant value,
but differs depending on the API version of the usage (the value of the
-api-version argument when compiling the module where
the usage is located). If the API version is greater or equal than hiddenSince, the declaration will not be accessible from the code
(as if it was deprecated with level DeprecationLevel.HIDDEN), otherwise if the API version is greater or equal than errorSince,
the usage will be marked as an error (as with DeprecationLevel.ERROR), otherwise if the API version is greater or equal
than warningSince, the usage will be marked as a warning (as with DeprecationLevel.WARNING), otherwise the annotation is ignored.