If you need to use the uid instead of msgno use
imap_clearflag_full($stream, implode(',', $flags), '\\DELETED', ST_UID);(PHP 4, PHP 5, PHP 7, PHP 8)
imap_undelete — Elimina la marca de eliminación de un mensaje
   Elimina la marca de eliminación del mensaje
   message_nums, colocada con
   imap_delete() o imap_mail_move().
  
imapAn IMAP\Connection instance.
message_nums
       Un string que representa uno o más mensajes en un formato de secuencia IMAP4 ("n",
       "n:m", o una combinación de estos,
       delimitados por comas).
      
flags
   Retorna siempre true.
  
| Versión | Descripción | 
|---|---|
| 8.1.0 | The imapparameter expects an IMAP\Connection
  instance now; previously, a validimapresource was expected. | 
If you need to use the uid instead of msgno use
imap_clearflag_full($stream, implode(',', $flags), '\\DELETED', ST_UID);The imap_delete function allows the option to use a UID for the message number but the imap_undelete function does not.