async def METHOD_NAME(*args, flags=MessageFlag.NONE):
    input_body, unix_fds = replace_fds_with_idx(intr_method.in_signature, list(args))
    msg = await self.bus.call(
        Message(
            destination=self.bus_name,
            path=self.path,
            interface=self.introspection.name,
            member=intr_method.name,
            signature=intr_method.in_signature,
            body=input_body,
            flags=flags,
            unix_fds=unix_fds,
        )
    )
    if flags & MessageFlag.NO_REPLY_EXPECTED:
        return None
    BaseProxyInterface._check_method_return(msg, intr_method.out_signature)
    out_len = len(intr_method.out_args)
    body = replace_idx_with_fds(msg.signature_tree, msg.body, msg.unix_fds)
    if not out_len:
        return None
    elif out_len == 1:
        return body[0]
    return body