func NewRoomServiceProtobufClient(baseURL string, client HTTPClient, opts ...twirp.ClientOption) RoomService {
	if c, ok := client.(*http.Client); ok {
		client = withoutRedirects(c)
	}
	clientOpts := twirp.ClientOptions{}
	for _, o := range opts {
		o(&clientOpts)
	}
	literalURLs := false
	_ = clientOpts.ReadOpt("literalURLs", &literalURLs)
	var pathPrefix string
	if ok := clientOpts.ReadOpt("pathPrefix", &pathPrefix); !ok {
		pathPrefix = "/twirp"  
	}
	serviceURL := sanitizeBaseURL(baseURL)
	serviceURL += baseServicePath(pathPrefix, "livekit", "RoomService")
	urls := [11]string{
		serviceURL + "CreateRoom",
		serviceURL + "ListRooms",
		serviceURL + "DeleteRoom",
		serviceURL + "ListParticipants",
		serviceURL + "GetParticipant",
		serviceURL + "RemoveParticipant",
		serviceURL + "MutePublishedTrack",
		serviceURL + "UpdateParticipant",
		serviceURL + "UpdateSubscriptions",
		serviceURL + "SendData",
		serviceURL + "UpdateRoomMetadata",
	}
	return &roomServiceProtobufClient{
		client:      client,
		urls:        urls,
		interceptor: twirp.ChainInterceptors(clientOpts.Interceptors...),
		opts:        clientOpts,
	}
}
NewRoomServiceProtobufClient creates a Protobuf client that implements the RoomService interface.
It communicates using Protobuf and can be configured with a custom HTTPClient.
package livekit
import context "context"
import fmt "fmt"
import http "net/http"
import ioutil "io/ioutil"
import json "encoding/json"
import strconv "strconv"
import strings "strings"
import protojson "google.golang.org/protobuf/encoding/protojson"
import proto "google.golang.org/protobuf/proto"
import twirp "github.com/twitchtv/twirp"
import ctxsetters "github.com/twitchtv/twirp/ctxsetters"
const _ = twirp.TwirpPackageMinVersion_8_1_0
type RoomService interface {
	CreateRoom(context.Context, *CreateRoomRequest) (*Room, error)
	ListRooms(context.Context, *ListRoomsRequest) (*ListRoomsResponse, error)
	DeleteRoom(context.Context, *DeleteRoomRequest) (*DeleteRoomResponse, error)
	ListParticipants(context.Context, *ListParticipantsRequest) (*ListParticipantsResponse, error)
	GetParticipant(context.Context, *RoomParticipantIdentity) (*ParticipantInfo, error)
	RemoveParticipant(context.Context, *RoomParticipantIdentity) (*RemoveParticipantResponse, error)
	MutePublishedTrack(context.Context, *MuteRoomTrackRequest) (*MuteRoomTrackResponse, error)
	UpdateParticipant(context.Context, *UpdateParticipantRequest) (*ParticipantInfo, error)
	UpdateSubscriptions(context.Context, *UpdateSubscriptionsRequest) (*UpdateSubscriptionsResponse, error)
	SendData(context.Context, *SendDataRequest) (*SendDataResponse, error)
	UpdateRoomMetadata(context.Context, *UpdateRoomMetadataRequest) (*Room, error)
}
type roomServiceProtobufClient struct {
	client      HTTPClient
	urls        [11]string
	interceptor twirp.Interceptor
	opts        twirp.ClientOptions
}