### Describe the issue with documentation

`BaseOperator` type hints for `retry_delay` and `max_retry_delay` shows `timedelta` only, however the params also accept `float` seconds values.
Also, type hint for `dag` param is missing.
More precise type hints and params descriptions in the docs can help to understand the code behavior easier.

### How to solve the problem

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/models/baseoperator.py
self,
        *,
        trigger: BaseTrigger,
        method_name: str,
        kwargs: Optional[Dict[str, Any]] = None,
        timeout: Optional[timedelta] = None,
    ):
        """
        Marks this Operator as being "deferred" - that is, suspending its
        execution until the provided trigger fires an event.
        This is achieved by raising a special exception (TaskDeferred)
        which is caught in the main _execute_task wrapper.
        """
        raise TaskDeferred(trigger=trigger, method_name=method_name, kwargs=kwargs, timeout=timeout)
Chainable = Union[BaseOperator, "XComArg", EdgeModifier, "TaskGroup"]
def chain(*tasks: Union[Chainable, Sequence[Chainable]]) -> None:
    r"""
    Given a number of tasks, builds a dependency chain.
    This function accepts values of BaseOperator (aka tasks), EdgeModifiers (aka Labels), XComArg, TaskGroups,
    or lists containing any mix of these types (or a mix in the same list). If you want to chain between two
    lists you must ensure they have the same length.
    Using classic operators/sensors:
    .. code-block:: python
        chain(t1, [t2, t3], [t4, t5], t6)
    is equivalent to::
          / -> t2 -> t4 \
        t1               -> t6
          \ -> t3 -> t5 /