{{ header }}package {{ package }};

{% if needs_list_import %}import java.util.List;
{% endif %}{% if needs_map_import %}import java.util.Map;
{% endif %}
/** Visitor interface for callbacks implemented by the host language. */
public interface {{ trait_name }} {
{% for callback in callbacks %}
    /** {{ callback.doc }} */
    default {{ result_type }} {{ callback.java_method }}({{ callback.params }}) {
        return new {{ result_type }}.{{ default_variant }}();
    }
{% endfor %}
}
