Just before other data associated with the post is deleted – like meta data. After the other data is deleted, the delete_post action executes, the primary post is removed, and then the deleted_post action is executed.
When items marked for trash are going through final (forced) deletion (e.g. the trash is disabled and an item is deleted).
This hook does not run:
For posts that are being marked as trash (unforced). The wp_trash_post hook is the functional equivalent, executed just before items are marked as trash.
For attachments. The delete_attachment hook is the functional equivalent, executed just before posts of type attachment are processed. With attachments, exactly as with other post types, meta data is removed, the delete_post action is run, then the attachment is removed from the database, and finally, the deleted_post action is run.