"""
Type annotations for {{ package.service_name.boto3_name }} service type definitions.

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

Usage::

    ```python
    from {{ package.name }}.type_defs import {{ package.type_defs[0].name }}

    data: {{ package.type_defs[0].name }} = ...
    ```
"""
{% for import_record in package.get_type_defs_required_import_records() -%}
    {% include "common/import_record.py.jinja2" with context %}
{% endfor -%}

{{ "\n\n" -}}

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

{% for type_def in package.type_defs -%}
    {% if type_def.is_typed_dict() -%}
        {% include "common/typed_dict.py.jinja2" with context -%}
    {% else -%}
        {% include "common/named_union.py.jinja2" with context -%}
    {% endif -%}
    {{ "\n" -}}
{% endfor -%}
