You can use cls: type.
Just like every integer is an instance of int, every class is an instance of type.
Demo:
>>> class Foo: pass
>>>
>>> isinstance(Foo, type)
>>> True
>>> isinstance(Foo(), type)
>>> False
You can also use Type from the typing module, which, as per the docs, is
A special construct usable to annotate class objects.
Using typing.Type is more flexible than cls:type.
For example, if you wanted to hint that the argument can be any class object, you simply use cls:Type.
If the argument should be any class object that is a subclass of the class Foo (or Foo itself), you can write cls: Type[Foo].
Read the docs for more info.
Responding to the comments:
it's like in your example. Class object is an instance of type, but class instance isn't. So that's why it complains: going func(Person) is alright but func(Person('Steve', 22)) is not.
In the second case, you are doing what you explicitly said you don't want to do: pass an instance of Person, not the class Person. So your IDE rightfully complains if you annotated type or Type.