async def delete(self, *, delay: Optional[float]=None) -> None:
    "|coro|\n\n        Deletes the message.\n\n        Your own messages could be deleted without any proper permissions. However to\n        delete other people's messages, you need the :attr:`~Permissions.manage_messages`\n        permission.\n\n        .. versionchanged:: 1.1\n            Added the new ``delay`` keyword-only parameter.\n\n        Parameters\n        -----------\n        delay: Optional[:class:`float`]\n            If provided, the number of seconds to wait in the background\n            before deleting the message. If the deletion fails then it is silently ignored.\n\n        Raises\n        ------\n        Forbidden\n            You do not have proper permissions to delete the message.\n        NotFound\n            The message was deleted already\n        HTTPException\n            Deleting the message failed.\n        "
    if (delay is not None):

        async def delete(delay: float):
            (await asyncio.sleep(delay))
            try:
                (await self._state.http.delete_message(self.channel.id, self.id))
            except HTTPException:
                pass
        asyncio.create_task(delete(delay))
    else:
        (await self._state.http.delete_message(self.channel.id, self.id))
|coro|

Deletes the message.

Your own messages could be deleted without any proper permissions. However to
delete other people's messages, you need the :attr:`~Permissions.manage_messages`
permission.

.. versionchanged:: 1.1
    Added the new ``delay`` keyword-only parameter.

Parameters
-----------
delay: Optional[:class:`float`]
    If provided, the number of seconds to wait in the background
    before deleting the message. If the deletion fails then it is silently ignored.

Raises
------
Forbidden
    You do not have proper permissions to delete the message.
NotFound
    The message was deleted already
HTTPException
    Deleting the message failed.
async def delete(self, *, delay: Optional[float]=None) -> None:
    "|coro|\n\n        Deletes the message.\n\n        Your own messages could be deleted without any proper permissions. However to\n        delete other people's messages, you need the :attr:`~Permissions.manage_messages`\n        permission.\n\n        .. versionchanged:: 1.1\n            Added the new ``delay`` keyword-only parameter.\n\n        Parameters\n        -----------\n        delay: Optional[:class:`float`]\n            If provided, the number of seconds to wait in the background\n            before deleting the message. If the deletion fails then it is silently ignored.\n\n        Raises\n        ------\n        Forbidden\n            You do not have proper permissions to delete the message.\n        NotFound\n            The message was deleted already\n        HTTPException\n            Deleting the message failed.\n        "
    if (delay is not None):

        async def delete(delay: float):
            (await asyncio.sleep(delay))
            try:
                (await self._state.http.delete_message(self.channel.id, self.id))
            except HTTPException:
                pass
        asyncio.create_task(delete(delay))
    else:
        (await self._state.http.delete_message(self.channel.id, self.id))