package {{ package_name }};

@FunctionalInterface
{{ self::javadoc_block(closure.doc, "") }}public interface {{ closure.interface_name }} {
{%- match closure.return_info %}
{%- when Some with (ret) %}
{{ self::javadoc_block(closure.invoke_doc, "    ") }}    {{ ret.java_type() }} invoke({% for param in closure.params %}{{ param.java_type }} {{ param.name }}{% if !loop.last %}, {% endif %}{% endfor %});
{%- when None %}
{{ self::javadoc_block(closure.invoke_doc, "    ") }}    void invoke({% for param in closure.params %}{{ param.java_type }} {{ param.name }}{% if !loop.last %}, {% endif %}{% endfor %});
{%- endmatch %}
}
