How to detect asset changes in a script?

For example a model or a texture have been updated and reimported. I need to check if that happened, or ideally have a callback.

In a case when asset file was changed I could use time/date of file creation, but if import settings were changed, should I check the .meta file time of creation/modification?

Is there any builtin method, version number, or callback, in Unity?

Use AssetPostprocessor.