### 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
dag_params.update(params)
            default_args = {}
            if 'default_args' in kwargs:
                default_args = kwargs['default_args']
                if 'params' in default_args:
                    dag_params.update(default_args['params'])
                    del default_args['params']
            dag_args.update(default_args)
            default_args = dag_args
            for arg in sig_cache.parameters:
                if arg not in kwargs and arg in default_args:
                    kwargs[arg] = default_args[arg]
            missing_args = list(non_optional_args - set(kwargs))
            if missing_args:
                msg = f"Argument {missing_args} is required"
                raise AirflowException(msg)
            if dag_params:
                kwargs['params'] = dag_params
            if default_args:
                kwargs['default_args'] = default_args
            if hasattr(self, '_hook_apply_defaults'):
                args, kwargs = self._hook_apply_defaults(*args, **kwargs)
            result = func(self, *args, **kwargs)
            
            self.set_xcomargs_dependencies()
            
            self._BaseOperator__instantiated = True
            return result
        return cast(T, apply_defaults)
    def __new__(cls, name, bases, namespace, **kwargs):