def METHOD_NAME(
    event_name: Absent[str | type[BaseEvent]] = MISSING,
    *,
    delay_until_ready: bool = False,
    is_default_listener: bool = False,
    disable_default_listeners: bool = False,
) -> Callable[[AsyncCallable], Listener]:
    """
    Decorator to make a function an event listener.
    Args:
        event_name: The name of the event to listen to. If left blank, event name will be inferred from the function name or parameter.
        delay_until_ready: Whether to delay the listener until the client is ready.
        is_default_listener: Whether this listener is provided automatically by the library, and might be unwanted by users.
        disable_default_listeners: Whether this listener supersedes default listeners.  If true, any default listeners will be unregistered.
    Returns:
        A listener object.
    """
    return Listener.create(
        event_name,
        delay_until_ready=delay_until_ready,
        is_default_listener=is_default_listener,
        disable_default_listeners=disable_default_listeners,
    )