    extern "Rust" {
        // Expose the opaque pointer as a `usize` so the Swift wrapper can hand it
        // through the @_silgen_name'd extern "C" callback-registration shim. The
        // swift-bridge generated class stores its raw pointer as an `internal`
        // field, so the consumer module cannot reach it directly.
        #[swift_bridge(swift_name = "{{ service_camel }}RawPtr")]
        fn {{ service_snake }}_raw_ptr(client: &mut {{ service_name }}) -> usize;
{%- for config in configurators %}
        #[swift_bridge(swift_name = "{{ config.camel }}")]
        fn {{ config.name }}(client: &mut {{ service_name }});
{%- endfor %}
{%- for ep in entrypoints %}
        #[swift_bridge(swift_name = "{{ ep.camel }}")]
        fn {{ ep.snake }}(
            client: &mut {{ service_name }},
{%- for param in ep.params %}
            {{ param.name }}: {{ param.rust_type }},
{%- endfor %}
        ) -> {{ ep.return_type }};
{%- endfor %}
    }
