"""
Type annotations for {{ package.service_name.boto3_name }} service client waiters.

[Open documentation]({{ package.service_name.get_doc_link("waiters") }})

Usage::

    ```python
    import boto3

    from {{ package.service_name.module_name }} import {{ package.client.name }}
    from {{ package.service_name.module_name }}.waiter import (
{% for waiter in package.waiters -%}
        {{ "        " -}}{{ waiter.name -}},
{% endfor -%}
    {{ '    ' -}})

    client: {{ package.client.name }} = boto3.client("{{ package.service_name.boto3_name }}")

{% for waiter in package.waiters -%}
    {{ "    " -}}
    {{ waiter.waiter_name }}_waiter: {{ waiter.name }} = client.get_waiter("{{ waiter.waiter_name }}")
{% endfor -%}
    {{ '    ' -}}```
"""
{% for import_record in package.get_waiter_required_import_records() -%}
    {% include "common/import_record_fallback.py.jinja2" with context %}
{% endfor -%}

{{ "\n\n" -}}

__all__ = (
{% for waiter in package.waiters -%}
    {{ '"' -}}
    {{ waiter.name -}}
    {{ '"' -}}
    {{ ",\n" if not loop.last or loop.first else "\n" }}
{% endfor -%}
)

{{ "\n\n" -}}

{% for waiter in package.waiters -%}
    {% with class=waiter -%}
        {% include "common/class.py.jinja2" with context -%}
    {% endwith -%}
    {{ "\n\n\n" if not loop.last else "\n" -}}
{% endfor -%}
