@livekit/rtc-node 0.13.3 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/data_streams/index.cjs +25 -0
  2. package/dist/data_streams/index.cjs.map +1 -0
  3. package/dist/data_streams/index.d.cts +11 -0
  4. package/dist/data_streams/index.d.ts +11 -0
  5. package/dist/data_streams/index.d.ts.map +1 -0
  6. package/dist/data_streams/index.js +3 -0
  7. package/dist/data_streams/index.js.map +1 -0
  8. package/dist/data_streams/stream_reader.cjs +141 -0
  9. package/dist/data_streams/stream_reader.cjs.map +1 -0
  10. package/dist/data_streams/stream_reader.d.cts +10 -0
  11. package/dist/data_streams/stream_reader.d.ts +10 -0
  12. package/dist/data_streams/stream_reader.d.ts.map +1 -0
  13. package/dist/data_streams/stream_reader.js +116 -0
  14. package/dist/data_streams/stream_reader.js.map +1 -0
  15. package/dist/data_streams/stream_writer.cjs +51 -0
  16. package/dist/data_streams/stream_writer.cjs.map +1 -0
  17. package/dist/data_streams/stream_writer.d.cts +26 -0
  18. package/dist/data_streams/stream_writer.d.ts +26 -0
  19. package/dist/data_streams/stream_writer.d.ts.map +1 -0
  20. package/dist/data_streams/stream_writer.js +26 -0
  21. package/dist/data_streams/stream_writer.js.map +1 -0
  22. package/dist/data_streams/types.cjs +17 -0
  23. package/dist/data_streams/types.cjs.map +1 -0
  24. package/dist/data_streams/types.d.cts +10 -0
  25. package/dist/data_streams/types.d.ts +10 -0
  26. package/dist/data_streams/types.d.ts.map +1 -0
  27. package/dist/data_streams/types.js +1 -0
  28. package/dist/data_streams/types.js.map +1 -0
  29. package/dist/index.cjs +7 -4
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.cts +4 -0
  32. package/dist/index.d.ts +4 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/log.cjs +42 -0
  37. package/dist/log.cjs.map +1 -0
  38. package/dist/log.d.cts +7 -0
  39. package/dist/log.d.ts +7 -0
  40. package/dist/log.d.ts.map +1 -0
  41. package/dist/log.js +18 -0
  42. package/dist/log.js.map +1 -0
  43. package/dist/napi/native.d.cjs.map +1 -1
  44. package/dist/napi/native.d.ts +5 -5
  45. package/dist/native.d.ts +5 -5
  46. package/dist/participant.cjs +249 -16
  47. package/dist/participant.cjs.map +1 -1
  48. package/dist/participant.d.cts +40 -6
  49. package/dist/participant.d.ts +40 -6
  50. package/dist/participant.d.ts.map +1 -1
  51. package/dist/participant.js +252 -5
  52. package/dist/participant.js.map +1 -1
  53. package/dist/proto/ffi_pb.cjs +14 -3
  54. package/dist/proto/ffi_pb.cjs.map +1 -1
  55. package/dist/proto/ffi_pb.d.cts +81 -7
  56. package/dist/proto/ffi_pb.d.ts +81 -7
  57. package/dist/proto/ffi_pb.d.ts.map +1 -1
  58. package/dist/proto/ffi_pb.js +15 -4
  59. package/dist/proto/ffi_pb.js.map +1 -1
  60. package/dist/proto/room_pb.cjs +488 -30
  61. package/dist/proto/room_pb.cjs.map +1 -1
  62. package/dist/proto/room_pb.d.cts +412 -50
  63. package/dist/proto/room_pb.d.ts +412 -50
  64. package/dist/proto/room_pb.d.ts.map +1 -1
  65. package/dist/proto/room_pb.js +471 -29
  66. package/dist/proto/room_pb.js.map +1 -1
  67. package/dist/proto/video_frame_pb.cjs.map +1 -1
  68. package/dist/proto/video_frame_pb.d.cts +3 -0
  69. package/dist/proto/video_frame_pb.d.ts +3 -0
  70. package/dist/proto/video_frame_pb.d.ts.map +1 -1
  71. package/dist/proto/video_frame_pb.js.map +1 -1
  72. package/dist/room.cjs +121 -0
  73. package/dist/room.cjs.map +1 -1
  74. package/dist/room.d.cts +17 -2
  75. package/dist/room.d.ts +17 -2
  76. package/dist/room.d.ts.map +1 -1
  77. package/dist/room.js +122 -0
  78. package/dist/room.js.map +1 -1
  79. package/dist/types-B28ZM-Ci.d.cts +88 -0
  80. package/dist/types-BDnbvXeD.d.ts +88 -0
  81. package/dist/utils.cjs +61 -0
  82. package/dist/utils.cjs.map +1 -0
  83. package/dist/utils.d.cts +7 -0
  84. package/dist/utils.d.ts +7 -0
  85. package/dist/utils.d.ts.map +1 -0
  86. package/dist/utils.js +35 -0
  87. package/dist/utils.js.map +1 -0
  88. package/dist/version.cjs +1 -1
  89. package/dist/version.cjs.map +1 -1
  90. package/dist/version.d.cts +1 -1
  91. package/dist/version.d.ts +1 -1
  92. package/dist/version.js +1 -1
  93. package/dist/version.js.map +1 -1
  94. package/dist/video_frame.cjs +2 -0
  95. package/dist/video_frame.cjs.map +1 -1
  96. package/dist/video_frame.d.ts.map +1 -1
  97. package/dist/video_frame.js +2 -0
  98. package/dist/video_frame.js.map +1 -1
  99. package/package.json +9 -7
  100. package/src/data_streams/index.ts +7 -0
  101. package/src/data_streams/stream_reader.ts +159 -0
  102. package/src/data_streams/stream_writer.ts +36 -0
  103. package/src/data_streams/types.ts +55 -0
  104. package/src/index.ts +1 -0
  105. package/src/log.ts +25 -0
  106. package/src/napi/native.d.ts +5 -5
  107. package/src/participant.ts +337 -29
  108. package/src/proto/ffi_pb.ts +86 -1
  109. package/src/proto/room_pb.ts +788 -68
  110. package/src/proto/video_frame_pb.ts +3 -0
  111. package/src/room.ts +141 -0
  112. package/src/utils.test.ts +51 -0
  113. package/src/utils.ts +42 -0
  114. package/src/version.ts +1 -1
  115. package/src/video_frame.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/participant.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { FfiClient, FfiHandle } from './ffi_client.js';\nimport {\n DisconnectReason,\n type OwnedParticipant,\n type ParticipantInfo,\n type ParticipantKind,\n} from './proto/participant_pb.js';\nimport type {\n PublishDataCallback,\n PublishDataResponse,\n PublishSipDtmfCallback,\n PublishSipDtmfResponse,\n PublishTrackCallback,\n PublishTrackResponse,\n PublishTranscriptionCallback,\n PublishTranscriptionResponse,\n SendChatMessageCallback,\n SendChatMessageResponse,\n SetLocalAttributesCallback,\n SetLocalAttributesResponse,\n SetLocalMetadataCallback,\n SetLocalMetadataResponse,\n SetLocalNameCallback,\n SetLocalNameResponse,\n TrackPublishOptions,\n UnpublishTrackCallback,\n UnpublishTrackResponse,\n} from './proto/room_pb.js';\nimport { ChatMessage as ChatMessageModel } from './proto/room_pb.js';\nimport {\n EditChatMessageRequest,\n TranscriptionSegment as ProtoTranscriptionSegment,\n PublishDataRequest,\n PublishSipDtmfRequest,\n PublishTrackRequest,\n PublishTranscriptionRequest,\n SendChatMessageRequest,\n SetLocalAttributesRequest,\n SetLocalMetadataRequest,\n SetLocalNameRequest,\n UnpublishTrackRequest,\n} from './proto/room_pb.js';\nimport type {\n PerformRpcCallback,\n PerformRpcResponse,\n RegisterRpcMethodResponse,\n RpcMethodInvocationResponseResponse,\n UnregisterRpcMethodResponse,\n} from './proto/rpc_pb.js';\nimport {\n PerformRpcRequest,\n RegisterRpcMethodRequest,\n RpcMethodInvocationResponseRequest,\n UnregisterRpcMethodRequest,\n} from './proto/rpc_pb.js';\nimport { type PerformRpcParams, RpcError, type RpcInvocationData } from './rpc.js';\nimport type { LocalTrack } from './track.js';\nimport type { RemoteTrackPublication, TrackPublication } from './track_publication.js';\nimport { LocalTrackPublication } from './track_publication.js';\nimport type { Transcription } from './transcription.js';\nimport type { ChatMessage } from './types.js';\n\nexport abstract class Participant {\n /** @internal */\n info: ParticipantInfo;\n\n /** @internal */\n ffi_handle: FfiHandle;\n\n trackPublications = new Map<string, TrackPublication>();\n\n constructor(owned_info: OwnedParticipant) {\n this.info = owned_info!.info!;\n this.ffi_handle = new FfiHandle(owned_info.handle!.id!);\n }\n\n get sid(): string | undefined {\n return this.info.sid;\n }\n\n get name(): string | undefined {\n return this.info.name;\n }\n\n get identity(): string | undefined {\n return this.info.identity;\n }\n\n get metadata(): string | undefined {\n return this.info.metadata;\n }\n\n get attributes(): Record<string, string> | undefined {\n return this.info.attributes;\n }\n\n get kind(): ParticipantKind | undefined {\n return this.info.kind;\n }\n\n get disconnectReason(): DisconnectReason | undefined {\n if (this.info.disconnectReason === DisconnectReason.UNKNOWN_REASON) {\n return undefined;\n }\n return this.info.disconnectReason;\n }\n}\n\nexport type DataPublishOptions = {\n /**\n * whether to send this as reliable or lossy.\n * For data that you need delivery guarantee (such as chat messages), use Reliable.\n * For data that should arrive as quickly as possible, but you are ok with dropped\n * packets, use Lossy.\n */\n reliable?: boolean;\n /**\n * the identities of participants who will receive the message, will be sent to every one if empty\n */\n destination_identities?: string[];\n /** the topic under which the message gets published */\n topic?: string;\n};\n\nexport class LocalParticipant extends Participant {\n private rpcHandlers: Map<string, (data: RpcInvocationData) => Promise<string>> = new Map();\n\n trackPublications: Map<string, LocalTrackPublication> = new Map();\n\n async publishData(data: Uint8Array, options: DataPublishOptions) {\n const req = new PublishDataRequest({\n localParticipantHandle: this.ffi_handle.handle,\n dataPtr: FfiClient.instance.retrievePtr(data),\n dataLen: BigInt(data.byteLength),\n reliable: options.reliable,\n topic: options.topic,\n destinationIdentities: options.destination_identities,\n });\n\n const res = FfiClient.instance.request<PublishDataResponse>({\n message: { case: 'publishData', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishDataCallback>((ev) => {\n return ev.message.case == 'publishData' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n async publishDtmf(code: number, digit: string) {\n const req = new PublishSipDtmfRequest({\n localParticipantHandle: this.ffi_handle.handle,\n code,\n digit,\n });\n\n const res = FfiClient.instance.request<PublishSipDtmfResponse>({\n message: { case: 'publishSipDtmf', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishSipDtmfCallback>((ev) => {\n return ev.message.case == 'publishSipDtmf' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n async publishTranscription(transcription: Transcription) {\n const req = new PublishTranscriptionRequest({\n localParticipantHandle: this.ffi_handle.handle,\n participantIdentity: transcription.participantIdentity,\n segments: transcription.segments.map(\n (s) =>\n new ProtoTranscriptionSegment({\n id: s.id,\n text: s.text,\n startTime: s.startTime,\n endTime: s.endTime,\n final: s.final,\n language: s.language,\n }),\n ),\n trackId: transcription.trackSid,\n });\n\n const res = FfiClient.instance.request<PublishTranscriptionResponse>({\n message: { case: 'publishTranscription', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishTranscriptionCallback>((ev) => {\n return ev.message.case == 'publishTranscription' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n async updateMetadata(metadata: string) {\n const req = new SetLocalMetadataRequest({\n localParticipantHandle: this.ffi_handle.handle,\n metadata: metadata,\n });\n\n const res = FfiClient.instance.request<SetLocalMetadataResponse>({\n message: { case: 'setLocalMetadata', value: req },\n });\n\n await FfiClient.instance.waitFor<SetLocalMetadataCallback>((ev) => {\n return ev.message.case == 'setLocalMetadata' && ev.message.value.asyncId == res.asyncId;\n });\n }\n\n /**\n * Sends a chat message to participants in the room\n *\n * @param text - The text content of the chat message.\n * @param destinationIdentities - An optional array of recipient identities to whom the message will be sent. If omitted, the message is broadcast to all participants.\n * @param senderIdentity - An optional identity of the sender. If omitted, the default sender identity is used.\n *\n */\n async sendChatMessage(\n text: string,\n destinationIdentities?: Array<string>,\n senderIdentity?: string,\n ): Promise<ChatMessage> {\n const req = new SendChatMessageRequest({\n localParticipantHandle: this.ffi_handle.handle,\n message: text,\n destinationIdentities,\n senderIdentity,\n });\n\n const res = FfiClient.instance.request<SendChatMessageResponse>({\n message: { case: 'sendChatMessage', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<SendChatMessageCallback>((ev) => {\n return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;\n });\n\n switch (cb.message.case) {\n case 'chatMessage':\n const { id, timestamp, editTimestamp, message } = cb.message.value!;\n return {\n id: id!,\n timestamp: Number(timestamp),\n editTimestamp: Number(editTimestamp),\n message: message!,\n };\n case 'error':\n default:\n throw new Error(cb.message.value);\n }\n }\n\n /**\n * @experimental\n */\n async editChatMessage(\n editText: string,\n originalMessage: ChatMessage,\n destinationIdentities?: Array<string>,\n senderIdentity?: string,\n ): Promise<ChatMessage> {\n const req = new EditChatMessageRequest({\n localParticipantHandle: this.ffi_handle.handle,\n editText,\n originalMessage: new ChatMessageModel({\n ...originalMessage,\n timestamp: BigInt(originalMessage.timestamp),\n editTimestamp: originalMessage.editTimestamp\n ? BigInt(originalMessage.editTimestamp)\n : undefined,\n }),\n destinationIdentities,\n senderIdentity,\n });\n\n const res = FfiClient.instance.request<SendChatMessageResponse>({\n message: { case: 'editChatMessage', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<SendChatMessageCallback>((ev) => {\n return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;\n });\n\n switch (cb.message.case) {\n case 'chatMessage':\n const { id, timestamp, editTimestamp, message } = cb.message.value!;\n return {\n id: id!,\n timestamp: Number(timestamp),\n editTimestamp: Number(editTimestamp),\n message: message!,\n };\n case 'error':\n default:\n throw new Error(cb.message.value);\n }\n }\n\n async updateName(name: string) {\n const req = new SetLocalNameRequest({\n localParticipantHandle: this.ffi_handle.handle,\n name: name,\n });\n\n const res = FfiClient.instance.request<SetLocalNameResponse>({\n message: { case: 'setLocalName', value: req },\n });\n\n await FfiClient.instance.waitFor<SetLocalNameCallback>((ev) => {\n return ev.message.case == 'setLocalName' && ev.message.value.asyncId == res.asyncId;\n });\n }\n\n async setAttributes(attributes: Record<string, string>) {\n const req = new SetLocalAttributesRequest({\n localParticipantHandle: this.ffi_handle.handle,\n attributes: Object.entries(attributes).map(([key, value]) => ({ key, value })),\n });\n\n const res = FfiClient.instance.request<SetLocalAttributesResponse>({\n message: { case: 'setLocalAttributes', value: req },\n });\n\n await FfiClient.instance.waitFor<SetLocalAttributesCallback>((ev) => {\n return ev.message.case == 'setLocalAttributes' && ev.message.value.asyncId == res.asyncId;\n });\n }\n\n async publishTrack(\n track: LocalTrack,\n options: TrackPublishOptions,\n ): Promise<LocalTrackPublication> {\n const req = new PublishTrackRequest({\n localParticipantHandle: this.ffi_handle.handle,\n trackHandle: track.ffi_handle.handle,\n options: options,\n });\n\n const res = FfiClient.instance.request<PublishTrackResponse>({\n message: { case: 'publishTrack', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishTrackCallback>((ev) => {\n return ev.message.case == 'publishTrack' && ev.message.value.asyncId == res.asyncId;\n });\n\n switch (cb.message.case) {\n case 'publication':\n const track_publication = new LocalTrackPublication(cb.message.value!);\n track_publication.track = track;\n this.trackPublications.set(track_publication.sid!, track_publication);\n\n return track_publication;\n case 'error':\n default:\n throw new Error(cb.message.value);\n }\n }\n\n async unpublishTrack(trackSid: string, stopOnUnpublish?: boolean) {\n const req = new UnpublishTrackRequest({\n localParticipantHandle: this.ffi_handle.handle,\n trackSid: trackSid,\n stopOnUnpublish: stopOnUnpublish ?? true,\n });\n\n const res = FfiClient.instance.request<UnpublishTrackResponse>({\n message: { case: 'unpublishTrack', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<UnpublishTrackCallback>((ev) => {\n return ev.message.case == 'unpublishTrack' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n\n const pub = this.trackPublications.get(trackSid);\n if (pub) {\n pub.track = undefined;\n }\n this.trackPublications.delete(trackSid);\n }\n\n /**\n * Initiate an RPC call to a remote participant.\n * @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}\n * @returns A promise that resolves with the response payload or rejects with an error.\n * @throws Error on failure. Details in `message`.\n */\n async performRpc({\n destinationIdentity,\n method,\n payload,\n responseTimeout,\n }: PerformRpcParams): Promise<string> {\n const req = new PerformRpcRequest({\n localParticipantHandle: this.ffi_handle.handle,\n destinationIdentity,\n method,\n payload,\n responseTimeoutMs: responseTimeout,\n });\n\n const res = FfiClient.instance.request<PerformRpcResponse>({\n message: { case: 'performRpc', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PerformRpcCallback>((ev) => {\n return ev.message.case === 'performRpc' && ev.message.value.asyncId === res.asyncId;\n });\n\n if (cb.error) {\n throw RpcError.fromProto(cb.error);\n }\n\n return cb.payload!;\n }\n\n /**\n * Establishes the participant as a receiver for calls of the specified RPC method.\n * Will overwrite any existing callback for the same method.\n *\n * @param method - The name of the indicated RPC method\n * @param handler - Will be invoked when an RPC request for this method is received\n * @returns A promise that resolves when the method is successfully registered\n *\n * @example\n * ```typescript\n * room.localParticipant?.registerRpcMethod(\n * 'greet',\n * async (data: RpcInvocationData) => {\n * console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);\n * return `Hello, ${data.callerIdentity}!`;\n * }\n * );\n * ```\n *\n * See {@link RpcInvocationData} for more details on invocation params.\n *\n * The handler should return a Promise that resolves to a string.\n * If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.\n *\n * You may throw errors of type `RpcError` with a string `message` in the handler,\n * and they will be received on the caller's side with the message intact.\n * Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` (\"Application Error\").\n */\n registerRpcMethod(method: string, handler: (data: RpcInvocationData) => Promise<string>) {\n this.rpcHandlers.set(method, handler);\n\n const req = new RegisterRpcMethodRequest({\n localParticipantHandle: this.ffi_handle.handle,\n method,\n });\n\n FfiClient.instance.request<RegisterRpcMethodResponse>({\n message: { case: 'registerRpcMethod', value: req },\n });\n }\n\n /**\n * Unregisters a previously registered RPC method.\n *\n * @param method - The name of the RPC method to unregister\n */\n unregisterRpcMethod(method: string) {\n this.rpcHandlers.delete(method);\n\n const req = new UnregisterRpcMethodRequest({\n localParticipantHandle: this.ffi_handle.handle,\n method,\n });\n\n FfiClient.instance.request<UnregisterRpcMethodResponse>({\n message: { case: 'unregisterRpcMethod', value: req },\n });\n }\n\n /** @internal */\n async handleRpcMethodInvocation(\n invocationId: bigint,\n method: string,\n requestId: string,\n callerIdentity: string,\n payload: string,\n responseTimeout: number,\n ) {\n let responseError: RpcError | null = null;\n let responsePayload: string | null = null;\n\n const handler = this.rpcHandlers.get(method);\n\n if (!handler) {\n responseError = RpcError.builtIn('UNSUPPORTED_METHOD');\n } else {\n try {\n responsePayload = await handler({ requestId, callerIdentity, payload, responseTimeout });\n } catch (error) {\n if (error instanceof RpcError) {\n responseError = error;\n } else {\n console.warn(\n `Uncaught error returned by RPC handler for ${method}. Returning APPLICATION_ERROR instead.`,\n error,\n );\n responseError = RpcError.builtIn('APPLICATION_ERROR');\n }\n }\n }\n\n const req = new RpcMethodInvocationResponseRequest({\n localParticipantHandle: this.ffi_handle.handle,\n invocationId,\n error: responseError ? responseError.toProto() : undefined,\n payload: responsePayload ?? undefined,\n });\n\n const res = FfiClient.instance.request<RpcMethodInvocationResponseResponse>({\n message: { case: 'rpcMethodInvocationResponse', value: req },\n });\n\n if (res.error) {\n console.warn(`error sending rpc method invocation response: ${res.error}`);\n }\n }\n}\n\nexport class RemoteParticipant extends Participant {\n trackPublications: Map<string, RemoteTrackPublication> = new Map();\n\n constructor(owned_info: OwnedParticipant) {\n super(owned_info);\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/participant.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { Mutex } from '@livekit/mutex';\nimport type { PathLike } from 'node:fs';\nimport { open, stat } from 'node:fs/promises';\nimport {\n type ByteStreamInfo,\n type ByteStreamOptions,\n ByteStreamWriter,\n type TextStreamInfo,\n TextStreamWriter,\n} from './data_streams/index.js';\nimport { FfiClient, FfiHandle } from './ffi_client.js';\nimport { log } from './log.js';\nimport {\n DisconnectReason,\n type OwnedParticipant,\n type ParticipantInfo,\n ParticipantKind,\n} from './proto/participant_pb.js';\nimport {\n DataStream_ByteHeader,\n DataStream_Chunk,\n DataStream_Header,\n DataStream_OperationType,\n DataStream_TextHeader,\n DataStream_Trailer,\n type PublishDataCallback,\n type PublishDataResponse,\n type PublishSipDtmfCallback,\n type PublishSipDtmfResponse,\n type PublishTrackCallback,\n type PublishTrackResponse,\n type PublishTranscriptionCallback,\n type PublishTranscriptionResponse,\n type SendChatMessageCallback,\n type SendChatMessageResponse,\n type SendStreamChunkCallback,\n SendStreamChunkRequest,\n type SendStreamChunkResponse,\n type SendStreamHeaderCallback,\n SendStreamHeaderRequest,\n type SendStreamHeaderResponse,\n type SendStreamTrailerCallback,\n SendStreamTrailerRequest,\n type SendStreamTrailerResponse,\n type SetLocalAttributesCallback,\n type SetLocalAttributesResponse,\n type SetLocalMetadataCallback,\n type SetLocalMetadataResponse,\n type SetLocalNameCallback,\n type SetLocalNameResponse,\n type TrackPublishOptions,\n type UnpublishTrackCallback,\n type UnpublishTrackResponse,\n} from './proto/room_pb.js';\nimport { ChatMessage as ChatMessageModel } from './proto/room_pb.js';\nimport {\n EditChatMessageRequest,\n TranscriptionSegment as ProtoTranscriptionSegment,\n PublishDataRequest,\n PublishSipDtmfRequest,\n PublishTrackRequest,\n PublishTranscriptionRequest,\n SendChatMessageRequest,\n SetLocalAttributesRequest,\n SetLocalMetadataRequest,\n SetLocalNameRequest,\n UnpublishTrackRequest,\n} from './proto/room_pb.js';\nimport type {\n PerformRpcCallback,\n PerformRpcResponse,\n RegisterRpcMethodResponse,\n RpcMethodInvocationResponseResponse,\n UnregisterRpcMethodResponse,\n} from './proto/rpc_pb.js';\nimport {\n PerformRpcRequest,\n RegisterRpcMethodRequest,\n RpcMethodInvocationResponseRequest,\n UnregisterRpcMethodRequest,\n} from './proto/rpc_pb.js';\nimport { type PerformRpcParams, RpcError, type RpcInvocationData } from './rpc.js';\nimport type { LocalTrack } from './track.js';\nimport type { RemoteTrackPublication, TrackPublication } from './track_publication.js';\nimport { LocalTrackPublication } from './track_publication.js';\nimport type { Transcription } from './transcription.js';\nimport type { ChatMessage } from './types.js';\nimport { numberToBigInt, splitUtf8 } from './utils.js';\n\nconst STREAM_CHUNK_SIZE = 15_000;\n\nexport abstract class Participant {\n /** @internal */\n info: ParticipantInfo;\n\n /** @internal */\n ffi_handle: FfiHandle;\n\n trackPublications = new Map<string, TrackPublication>();\n\n constructor(owned_info: OwnedParticipant) {\n this.info = owned_info!.info!;\n this.ffi_handle = new FfiHandle(owned_info.handle!.id!);\n }\n\n get sid(): string | undefined {\n return this.info.sid;\n }\n\n get name(): string | undefined {\n return this.info.name;\n }\n\n get identity(): string {\n return this.info.identity ?? '';\n }\n\n get metadata(): string {\n return this.info.metadata ?? '';\n }\n\n get attributes(): Record<string, string> {\n return this.info.attributes ?? {};\n }\n\n get kind(): ParticipantKind {\n return this.info.kind ?? ParticipantKind.STANDARD;\n }\n\n get disconnectReason(): DisconnectReason | undefined {\n if (this.info.disconnectReason === DisconnectReason.UNKNOWN_REASON) {\n return undefined;\n }\n return this.info.disconnectReason;\n }\n}\n\nexport type DataPublishOptions = {\n /**\n * whether to send this as reliable or lossy.\n * For data that you need delivery guarantee (such as chat messages), use Reliable.\n * For data that should arrive as quickly as possible, but you are ok with dropped\n * packets, use Lossy.\n */\n reliable?: boolean;\n /**\n * the identities of participants who will receive the message, will be sent to every one if empty\n */\n destination_identities?: string[];\n /** the topic under which the message gets published */\n topic?: string;\n};\n\nexport class LocalParticipant extends Participant {\n private rpcHandlers: Map<string, (data: RpcInvocationData) => Promise<string>> = new Map();\n\n trackPublications: Map<string, LocalTrackPublication> = new Map();\n\n async publishData(data: Uint8Array, options: DataPublishOptions) {\n const req = new PublishDataRequest({\n localParticipantHandle: this.ffi_handle.handle,\n dataPtr: FfiClient.instance.retrievePtr(data),\n dataLen: BigInt(data.byteLength),\n reliable: options.reliable,\n topic: options.topic,\n destinationIdentities: options.destination_identities,\n });\n\n const res = FfiClient.instance.request<PublishDataResponse>({\n message: { case: 'publishData', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishDataCallback>((ev) => {\n return ev.message.case == 'publishData' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n async publishDtmf(code: number, digit: string) {\n const req = new PublishSipDtmfRequest({\n localParticipantHandle: this.ffi_handle.handle,\n code,\n digit,\n });\n\n const res = FfiClient.instance.request<PublishSipDtmfResponse>({\n message: { case: 'publishSipDtmf', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishSipDtmfCallback>((ev) => {\n return ev.message.case == 'publishSipDtmf' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n async publishTranscription(transcription: Transcription) {\n const req = new PublishTranscriptionRequest({\n localParticipantHandle: this.ffi_handle.handle,\n participantIdentity: transcription.participantIdentity,\n segments: transcription.segments.map(\n (s) =>\n new ProtoTranscriptionSegment({\n id: s.id,\n text: s.text,\n startTime: s.startTime,\n endTime: s.endTime,\n final: s.final,\n language: s.language,\n }),\n ),\n trackId: transcription.trackSid,\n });\n\n const res = FfiClient.instance.request<PublishTranscriptionResponse>({\n message: { case: 'publishTranscription', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishTranscriptionCallback>((ev) => {\n return ev.message.case == 'publishTranscription' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n async updateMetadata(metadata: string) {\n const req = new SetLocalMetadataRequest({\n localParticipantHandle: this.ffi_handle.handle,\n metadata: metadata,\n });\n\n const res = FfiClient.instance.request<SetLocalMetadataResponse>({\n message: { case: 'setLocalMetadata', value: req },\n });\n\n await FfiClient.instance.waitFor<SetLocalMetadataCallback>((ev) => {\n return ev.message.case == 'setLocalMetadata' && ev.message.value.asyncId == res.asyncId;\n });\n }\n\n /**\n * Returns a `StreamWriter` instance that allows to write individual chunks of text to a stream.\n * Well suited for TTS and/or streaming LLM output. If you want to simply send a text then use sendText() instead\n */\n async streamText(options?: {\n topic?: string;\n attributes?: Record<string, string>;\n destinationIdentities?: Array<string>;\n streamId?: string;\n }): Promise<TextStreamWriter> {\n const senderIdentity = this.identity;\n const streamId = options?.streamId ?? crypto.randomUUID();\n const destinationIdentities = options?.destinationIdentities;\n\n const info: TextStreamInfo = {\n streamId: streamId,\n mimeType: 'text/plain',\n topic: options?.topic ?? '',\n timestamp: Date.now(),\n };\n\n const headerReq = new SendStreamHeaderRequest({\n senderIdentity,\n destinationIdentities,\n localParticipantHandle: this.ffi_handle.handle,\n header: new DataStream_Header({\n streamId,\n mimeType: info.mimeType,\n topic: info.topic,\n timestamp: numberToBigInt(info.timestamp),\n attributes: options?.attributes,\n contentHeader: {\n case: 'textHeader',\n value: new DataStream_TextHeader({\n operationType: DataStream_OperationType.CREATE,\n version: 0,\n replyToStreamId: '',\n generated: false,\n }),\n },\n }),\n });\n\n await this.sendStreamHeader(headerReq);\n\n let nextChunkId = 0;\n const localHandle = this.ffi_handle.handle;\n const sendTrailer = this.sendStreamTrailer;\n const sendChunk = this.sendStreamChunk;\n\n const writableStream = new WritableStream<string>({\n // Implement the sink\n async write(text) {\n for (const textByteChunk of splitUtf8(text, STREAM_CHUNK_SIZE)) {\n const chunkRequest = new SendStreamChunkRequest({\n senderIdentity,\n localParticipantHandle: localHandle,\n destinationIdentities,\n chunk: new DataStream_Chunk({\n content: textByteChunk,\n streamId,\n chunkIndex: numberToBigInt(nextChunkId),\n }),\n });\n\n await sendChunk(chunkRequest);\n nextChunkId += 1;\n }\n },\n async close() {\n const trailerReq = new SendStreamTrailerRequest({\n senderIdentity,\n localParticipantHandle: localHandle,\n destinationIdentities,\n trailer: new DataStream_Trailer({\n streamId,\n reason: '',\n }),\n });\n await sendTrailer(trailerReq);\n },\n abort(err) {\n log.error('Sink error:', err);\n },\n });\n\n const writer = new TextStreamWriter(writableStream, info);\n\n return writer;\n }\n\n async sendText(\n text: string,\n options?: {\n topic?: string;\n attributes?: Record<string, string>;\n destinationIdentities?: Array<string>;\n streamId?: string;\n },\n ) {\n const writer = await this.streamText(options);\n await writer.write(text);\n await writer.close();\n return writer.info;\n }\n\n async streamBytes(options?: {\n name?: string;\n topic?: string;\n attributes?: Record<string, string>;\n destinationIdentities?: Array<string>;\n streamId?: string;\n mimeType?: string;\n totalSize?: number;\n }) {\n const senderIdentity = this.identity;\n const streamId = options?.streamId ?? crypto.randomUUID();\n const destinationIdentities = options?.destinationIdentities;\n\n const info: ByteStreamInfo = {\n streamId: streamId,\n mimeType: options?.mimeType ?? 'application/octet-stream',\n topic: options?.topic ?? '',\n timestamp: Date.now(),\n attributes: options?.attributes,\n totalSize: options?.totalSize,\n name: options?.name ?? 'unknown',\n };\n\n const headerReq = new SendStreamHeaderRequest({\n senderIdentity,\n destinationIdentities,\n localParticipantHandle: this.ffi_handle.handle,\n header: new DataStream_Header({\n streamId,\n mimeType: info.mimeType,\n topic: info.topic,\n timestamp: numberToBigInt(info.timestamp),\n attributes: info.attributes,\n totalLength: numberToBigInt(info.totalSize),\n contentHeader: {\n case: 'byteHeader',\n value: new DataStream_ByteHeader({\n name: info.name,\n }),\n },\n }),\n });\n\n await this.sendStreamHeader(headerReq);\n\n let chunkId = 0;\n const localHandle = this.ffi_handle.handle;\n const sendTrailer = this.sendStreamTrailer;\n const sendChunk = this.sendStreamChunk;\n const writeMutex = new Mutex();\n\n const writableStream = new WritableStream<Uint8Array>({\n async write(chunk) {\n const unlock = await writeMutex.lock();\n\n let byteOffset = 0;\n try {\n while (byteOffset < chunk.byteLength) {\n const subChunk = chunk.slice(byteOffset, byteOffset + STREAM_CHUNK_SIZE);\n const chunkRequest = new SendStreamChunkRequest({\n senderIdentity,\n localParticipantHandle: localHandle,\n destinationIdentities,\n chunk: new DataStream_Chunk({\n content: subChunk,\n streamId,\n chunkIndex: numberToBigInt(chunkId),\n }),\n });\n\n await sendChunk(chunkRequest);\n chunkId += 1;\n byteOffset += subChunk.byteLength;\n }\n } finally {\n unlock();\n }\n },\n async close() {\n const trailerReq = new SendStreamTrailerRequest({\n senderIdentity,\n localParticipantHandle: localHandle,\n destinationIdentities,\n trailer: new DataStream_Trailer({\n streamId,\n reason: '',\n }),\n });\n await sendTrailer(trailerReq);\n },\n abort(err) {\n log.error('Sink error:', err);\n },\n });\n\n const byteWriter = new ByteStreamWriter(writableStream, info);\n\n return byteWriter;\n }\n\n /** Sends a file provided as PathLike to specified recipients */\n async sendFile(path: PathLike, options?: ByteStreamOptions) {\n const fileStats = await stat(path);\n const file = await open(path);\n try {\n const stream: ReadableStream<Uint8Array> = file.readableWebStream({ type: 'bytes' });\n const streamId = crypto.randomUUID();\n const destinationIdentities = options?.destinationIdentities;\n\n const writer = await this.streamBytes({\n streamId: streamId,\n name: options?.name,\n totalSize: fileStats.size,\n destinationIdentities,\n topic: options?.topic,\n mimeType: options?.mimeType,\n attributes: options?.attributes,\n });\n\n for await (const chunk of stream) {\n await writer.write(chunk);\n }\n await writer.close();\n } finally {\n await file.close();\n }\n }\n\n private async sendStreamHeader(req: SendStreamHeaderRequest) {\n const type = 'sendStreamHeader';\n const res = FfiClient.instance.request<SendStreamHeaderResponse>({\n message: { case: type, value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<SendStreamHeaderCallback>((ev) => {\n return ev.message.case == type && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n private async sendStreamChunk(req: SendStreamChunkRequest) {\n const type = 'sendStreamChunk';\n const res = FfiClient.instance.request<SendStreamChunkResponse>({\n message: { case: type, value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<SendStreamChunkCallback>((ev) => {\n return ev.message.case == type && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n private async sendStreamTrailer(req: SendStreamTrailerRequest) {\n const type = 'sendStreamTrailer';\n const res = FfiClient.instance.request<SendStreamTrailerResponse>({\n message: { case: type, value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<SendStreamTrailerCallback>((ev) => {\n return ev.message.case == type && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n }\n\n /**\n * Sends a chat message to participants in the room\n *\n * @param text - The text content of the chat message.\n * @param destinationIdentities - An optional array of recipient identities to whom the message will be sent. If omitted, the message is broadcast to all participants.\n * @param senderIdentity - An optional identity of the sender. If omitted, the default sender identity is used.\n *\n */\n async sendChatMessage(\n text: string,\n destinationIdentities?: Array<string>,\n senderIdentity?: string,\n ): Promise<ChatMessage> {\n const req = new SendChatMessageRequest({\n localParticipantHandle: this.ffi_handle.handle,\n message: text,\n destinationIdentities,\n senderIdentity,\n });\n\n const res = FfiClient.instance.request<SendChatMessageResponse>({\n message: { case: 'sendChatMessage', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<SendChatMessageCallback>((ev) => {\n return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;\n });\n\n switch (cb.message.case) {\n case 'chatMessage':\n const { id, timestamp, editTimestamp, message } = cb.message.value!;\n return {\n id: id!,\n timestamp: Number(timestamp),\n editTimestamp: Number(editTimestamp),\n message: message!,\n };\n case 'error':\n default:\n throw new Error(cb.message.value);\n }\n }\n\n /**\n * @experimental\n */\n async editChatMessage(\n editText: string,\n originalMessage: ChatMessage,\n destinationIdentities?: Array<string>,\n senderIdentity?: string,\n ): Promise<ChatMessage> {\n const req = new EditChatMessageRequest({\n localParticipantHandle: this.ffi_handle.handle,\n editText,\n originalMessage: new ChatMessageModel({\n ...originalMessage,\n timestamp: BigInt(originalMessage.timestamp),\n editTimestamp: originalMessage.editTimestamp\n ? BigInt(originalMessage.editTimestamp)\n : undefined,\n }),\n destinationIdentities,\n senderIdentity,\n });\n\n const res = FfiClient.instance.request<SendChatMessageResponse>({\n message: { case: 'editChatMessage', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<SendChatMessageCallback>((ev) => {\n return ev.message.case == 'chatMessage' && ev.message.value.asyncId == res.asyncId;\n });\n\n switch (cb.message.case) {\n case 'chatMessage':\n const { id, timestamp, editTimestamp, message } = cb.message.value!;\n return {\n id: id!,\n timestamp: Number(timestamp),\n editTimestamp: Number(editTimestamp),\n message: message!,\n };\n case 'error':\n default:\n throw new Error(cb.message.value);\n }\n }\n\n async updateName(name: string) {\n const req = new SetLocalNameRequest({\n localParticipantHandle: this.ffi_handle.handle,\n name: name,\n });\n\n const res = FfiClient.instance.request<SetLocalNameResponse>({\n message: { case: 'setLocalName', value: req },\n });\n\n await FfiClient.instance.waitFor<SetLocalNameCallback>((ev) => {\n return ev.message.case == 'setLocalName' && ev.message.value.asyncId == res.asyncId;\n });\n }\n\n async setAttributes(attributes: Record<string, string>) {\n const req = new SetLocalAttributesRequest({\n localParticipantHandle: this.ffi_handle.handle,\n attributes: Object.entries(attributes).map(([key, value]) => ({ key, value })),\n });\n\n const res = FfiClient.instance.request<SetLocalAttributesResponse>({\n message: { case: 'setLocalAttributes', value: req },\n });\n\n await FfiClient.instance.waitFor<SetLocalAttributesCallback>((ev) => {\n return ev.message.case == 'setLocalAttributes' && ev.message.value.asyncId == res.asyncId;\n });\n }\n\n async publishTrack(\n track: LocalTrack,\n options: TrackPublishOptions,\n ): Promise<LocalTrackPublication> {\n const req = new PublishTrackRequest({\n localParticipantHandle: this.ffi_handle.handle,\n trackHandle: track.ffi_handle.handle,\n options: options,\n });\n\n const res = FfiClient.instance.request<PublishTrackResponse>({\n message: { case: 'publishTrack', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PublishTrackCallback>((ev) => {\n return ev.message.case == 'publishTrack' && ev.message.value.asyncId == res.asyncId;\n });\n\n switch (cb.message.case) {\n case 'publication':\n const track_publication = new LocalTrackPublication(cb.message.value!);\n track_publication.track = track;\n this.trackPublications.set(track_publication.sid!, track_publication);\n\n return track_publication;\n case 'error':\n default:\n throw new Error(cb.message.value);\n }\n }\n\n async unpublishTrack(trackSid: string, stopOnUnpublish?: boolean) {\n const req = new UnpublishTrackRequest({\n localParticipantHandle: this.ffi_handle.handle,\n trackSid: trackSid,\n stopOnUnpublish: stopOnUnpublish ?? true,\n });\n\n const res = FfiClient.instance.request<UnpublishTrackResponse>({\n message: { case: 'unpublishTrack', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<UnpublishTrackCallback>((ev) => {\n return ev.message.case == 'unpublishTrack' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.error) {\n throw new Error(cb.error);\n }\n\n const pub = this.trackPublications.get(trackSid);\n if (pub) {\n pub.track = undefined;\n }\n this.trackPublications.delete(trackSid);\n }\n\n /**\n * Initiate an RPC call to a remote participant.\n * @param params - Parameters for initiating the RPC call, see {@link PerformRpcParams}\n * @returns A promise that resolves with the response payload or rejects with an error.\n * @throws Error on failure. Details in `message`.\n */\n async performRpc({\n destinationIdentity,\n method,\n payload,\n responseTimeout,\n }: PerformRpcParams): Promise<string> {\n const req = new PerformRpcRequest({\n localParticipantHandle: this.ffi_handle.handle,\n destinationIdentity,\n method,\n payload,\n responseTimeoutMs: responseTimeout,\n });\n\n const res = FfiClient.instance.request<PerformRpcResponse>({\n message: { case: 'performRpc', value: req },\n });\n\n const cb = await FfiClient.instance.waitFor<PerformRpcCallback>((ev) => {\n return ev.message.case === 'performRpc' && ev.message.value.asyncId === res.asyncId;\n });\n\n if (cb.error) {\n throw RpcError.fromProto(cb.error);\n }\n\n return cb.payload!;\n }\n\n /**\n * Establishes the participant as a receiver for calls of the specified RPC method.\n * Will overwrite any existing callback for the same method.\n *\n * @param method - The name of the indicated RPC method\n * @param handler - Will be invoked when an RPC request for this method is received\n * @returns A promise that resolves when the method is successfully registered\n *\n * @example\n * ```typescript\n * room.localParticipant?.registerRpcMethod(\n * 'greet',\n * async (data: RpcInvocationData) => {\n * console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);\n * return `Hello, ${data.callerIdentity}!`;\n * }\n * );\n * ```\n *\n * See {@link RpcInvocationData} for more details on invocation params.\n *\n * The handler should return a Promise that resolves to a string.\n * If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.\n *\n * You may throw errors of type `RpcError` with a string `message` in the handler,\n * and they will be received on the caller's side with the message intact.\n * Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` (\"Application Error\").\n */\n registerRpcMethod(method: string, handler: (data: RpcInvocationData) => Promise<string>) {\n this.rpcHandlers.set(method, handler);\n\n const req = new RegisterRpcMethodRequest({\n localParticipantHandle: this.ffi_handle.handle,\n method,\n });\n\n FfiClient.instance.request<RegisterRpcMethodResponse>({\n message: { case: 'registerRpcMethod', value: req },\n });\n }\n\n /**\n * Unregisters a previously registered RPC method.\n *\n * @param method - The name of the RPC method to unregister\n */\n unregisterRpcMethod(method: string) {\n this.rpcHandlers.delete(method);\n\n const req = new UnregisterRpcMethodRequest({\n localParticipantHandle: this.ffi_handle.handle,\n method,\n });\n\n FfiClient.instance.request<UnregisterRpcMethodResponse>({\n message: { case: 'unregisterRpcMethod', value: req },\n });\n }\n\n /** @internal */\n async handleRpcMethodInvocation(\n invocationId: bigint,\n method: string,\n requestId: string,\n callerIdentity: string,\n payload: string,\n responseTimeout: number,\n ) {\n let responseError: RpcError | null = null;\n let responsePayload: string | null = null;\n\n const handler = this.rpcHandlers.get(method);\n\n if (!handler) {\n responseError = RpcError.builtIn('UNSUPPORTED_METHOD');\n } else {\n try {\n responsePayload = await handler({ requestId, callerIdentity, payload, responseTimeout });\n } catch (error) {\n if (error instanceof RpcError) {\n responseError = error;\n } else {\n console.warn(\n `Uncaught error returned by RPC handler for ${method}. Returning APPLICATION_ERROR instead.`,\n error,\n );\n responseError = RpcError.builtIn('APPLICATION_ERROR');\n }\n }\n }\n\n const req = new RpcMethodInvocationResponseRequest({\n localParticipantHandle: this.ffi_handle.handle,\n invocationId,\n error: responseError ? responseError.toProto() : undefined,\n payload: responsePayload ?? undefined,\n });\n\n const res = FfiClient.instance.request<RpcMethodInvocationResponseResponse>({\n message: { case: 'rpcMethodInvocationResponse', value: req },\n });\n\n if (res.error) {\n console.warn(`error sending rpc method invocation response: ${res.error}`);\n }\n }\n}\n\nexport class RemoteParticipant extends Participant {\n trackPublications: Map<string, RemoteTrackPublication> = new Map();\n\n constructor(owned_info: OwnedParticipant) {\n super(owned_info);\n }\n}\n"],"mappings":"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","names":[]}
@@ -119,7 +119,11 @@ _FfiRequest.fields = import_protobuf.proto2.util.newFieldList(() => [
119
119
  { no: 40, name: "unregister_rpc_method", kind: "message", T: import_rpc_pb.UnregisterRpcMethodRequest, oneof: "message" },
120
120
  { no: 41, name: "rpc_method_invocation_response", kind: "message", T: import_rpc_pb.RpcMethodInvocationResponseRequest, oneof: "message" },
121
121
  { no: 42, name: "enable_remote_track_publication", kind: "message", T: import_track_publication_pb.EnableRemoteTrackPublicationRequest, oneof: "message" },
122
- { no: 43, name: "update_remote_track_publication_dimension", kind: "message", T: import_track_publication_pb.UpdateRemoteTrackPublicationDimensionRequest, oneof: "message" }
122
+ { no: 43, name: "update_remote_track_publication_dimension", kind: "message", T: import_track_publication_pb.UpdateRemoteTrackPublicationDimensionRequest, oneof: "message" },
123
+ { no: 44, name: "send_stream_header", kind: "message", T: import_room_pb.SendStreamHeaderRequest, oneof: "message" },
124
+ { no: 45, name: "send_stream_chunk", kind: "message", T: import_room_pb.SendStreamChunkRequest, oneof: "message" },
125
+ { no: 46, name: "send_stream_trailer", kind: "message", T: import_room_pb.SendStreamTrailerRequest, oneof: "message" },
126
+ { no: 47, name: "set_data_channel_buffered_amount_low_threshold", kind: "message", T: import_room_pb.SetDataChannelBufferedAmountLowThresholdRequest, oneof: "message" }
123
127
  ]);
124
128
  let FfiRequest = _FfiRequest;
125
129
  const _FfiResponse = class _FfiResponse extends import_protobuf.Message {
@@ -187,7 +191,11 @@ _FfiResponse.fields = import_protobuf.proto2.util.newFieldList(() => [
187
191
  { no: 39, name: "unregister_rpc_method", kind: "message", T: import_rpc_pb.UnregisterRpcMethodResponse, oneof: "message" },
188
192
  { no: 40, name: "rpc_method_invocation_response", kind: "message", T: import_rpc_pb.RpcMethodInvocationResponseResponse, oneof: "message" },
189
193
  { no: 41, name: "enable_remote_track_publication", kind: "message", T: import_track_publication_pb.EnableRemoteTrackPublicationResponse, oneof: "message" },
190
- { no: 42, name: "update_remote_track_publication_dimension", kind: "message", T: import_track_publication_pb.UpdateRemoteTrackPublicationDimensionResponse, oneof: "message" }
194
+ { no: 42, name: "update_remote_track_publication_dimension", kind: "message", T: import_track_publication_pb.UpdateRemoteTrackPublicationDimensionResponse, oneof: "message" },
195
+ { no: 43, name: "send_stream_header", kind: "message", T: import_room_pb.SendStreamHeaderResponse, oneof: "message" },
196
+ { no: 44, name: "send_stream_chunk", kind: "message", T: import_room_pb.SendStreamChunkResponse, oneof: "message" },
197
+ { no: 45, name: "send_stream_trailer", kind: "message", T: import_room_pb.SendStreamTrailerResponse, oneof: "message" },
198
+ { no: 46, name: "set_data_channel_buffered_amount_low_threshold", kind: "message", T: import_room_pb.SetDataChannelBufferedAmountLowThresholdResponse, oneof: "message" }
191
199
  ]);
192
200
  let FfiResponse = _FfiResponse;
193
201
  const _FfiEvent = class _FfiEvent extends import_protobuf.Message {
@@ -237,7 +245,10 @@ _FfiEvent.fields = import_protobuf.proto2.util.newFieldList(() => [
237
245
  { no: 21, name: "publish_sip_dtmf", kind: "message", T: import_room_pb.PublishSipDtmfCallback, oneof: "message" },
238
246
  { no: 22, name: "chat_message", kind: "message", T: import_room_pb.SendChatMessageCallback, oneof: "message" },
239
247
  { no: 23, name: "perform_rpc", kind: "message", T: import_rpc_pb.PerformRpcCallback, oneof: "message" },
240
- { no: 24, name: "rpc_method_invocation", kind: "message", T: import_rpc_pb.RpcMethodInvocationEvent, oneof: "message" }
248
+ { no: 24, name: "rpc_method_invocation", kind: "message", T: import_rpc_pb.RpcMethodInvocationEvent, oneof: "message" },
249
+ { no: 25, name: "send_stream_header", kind: "message", T: import_room_pb.SendStreamHeaderCallback, oneof: "message" },
250
+ { no: 26, name: "send_stream_chunk", kind: "message", T: import_room_pb.SendStreamChunkCallback, oneof: "message" },
251
+ { no: 27, name: "send_stream_trailer", kind: "message", T: import_room_pb.SendStreamTrailerCallback, oneof: "message" }
241
252
  ]);
242
253
  let FfiEvent = _FfiEvent;
243
254
  const _DisposeRequest = class _DisposeRequest extends import_protobuf.Message {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/proto/ffi_pb.ts"],"sourcesContent":["// Copyright 2023 LiveKit, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file ffi.proto (package livekit.proto, syntax proto2)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto2 } from \"@bufbuild/protobuf\";\nimport { ConnectCallback, ConnectRequest, ConnectResponse, DisconnectCallback, DisconnectRequest, DisconnectResponse, EditChatMessageRequest, GetSessionStatsCallback, GetSessionStatsRequest, GetSessionStatsResponse, PublishDataCallback, PublishDataRequest, PublishDataResponse, PublishSipDtmfCallback, PublishSipDtmfRequest, PublishSipDtmfResponse, PublishTrackCallback, PublishTrackRequest, PublishTrackResponse, PublishTranscriptionCallback, PublishTranscriptionRequest, PublishTranscriptionResponse, RoomEvent, SendChatMessageCallback, SendChatMessageRequest, SendChatMessageResponse, SetLocalAttributesCallback, SetLocalAttributesRequest, SetLocalAttributesResponse, SetLocalMetadataCallback, SetLocalMetadataRequest, SetLocalMetadataResponse, SetLocalNameCallback, SetLocalNameRequest, SetLocalNameResponse, SetSubscribedRequest, SetSubscribedResponse, UnpublishTrackCallback, UnpublishTrackRequest, UnpublishTrackResponse } from \"./room_pb.js\";\nimport { CreateAudioTrackRequest, CreateAudioTrackResponse, CreateVideoTrackRequest, CreateVideoTrackResponse, EnableRemoteTrackRequest, EnableRemoteTrackResponse, GetStatsCallback, GetStatsRequest, GetStatsResponse, LocalTrackMuteRequest, LocalTrackMuteResponse, TrackEvent } from \"./track_pb.js\";\nimport { CaptureVideoFrameRequest, CaptureVideoFrameResponse, NewVideoSourceRequest, NewVideoSourceResponse, NewVideoStreamRequest, NewVideoStreamResponse, VideoConvertRequest, VideoConvertResponse, VideoStreamEvent, VideoStreamFromParticipantRequest, VideoStreamFromParticipantResponse } from \"./video_frame_pb.js\";\nimport { AudioStreamEvent, AudioStreamFromParticipantRequest, AudioStreamFromParticipantResponse, CaptureAudioFrameCallback, CaptureAudioFrameRequest, CaptureAudioFrameResponse, ClearAudioBufferRequest, ClearAudioBufferResponse, FlushSoxResamplerRequest, FlushSoxResamplerResponse, NewAudioResamplerRequest, NewAudioResamplerResponse, NewAudioSourceRequest, NewAudioSourceResponse, NewAudioStreamRequest, NewAudioStreamResponse, NewSoxResamplerRequest, NewSoxResamplerResponse, PushSoxResamplerRequest, PushSoxResamplerResponse, RemixAndResampleRequest, RemixAndResampleResponse } from \"./audio_frame_pb.js\";\nimport { E2eeRequest, E2eeResponse } from \"./e2ee_pb.js\";\nimport { PerformRpcCallback, PerformRpcRequest, PerformRpcResponse, RegisterRpcMethodRequest, RegisterRpcMethodResponse, RpcMethodInvocationEvent, RpcMethodInvocationResponseRequest, RpcMethodInvocationResponseResponse, UnregisterRpcMethodRequest, UnregisterRpcMethodResponse } from \"./rpc_pb.js\";\nimport { EnableRemoteTrackPublicationRequest, EnableRemoteTrackPublicationResponse, UpdateRemoteTrackPublicationDimensionRequest, UpdateRemoteTrackPublicationDimensionResponse } from \"./track_publication_pb.js\";\n\n/**\n * @generated from enum livekit.proto.LogLevel\n */\nexport enum LogLevel {\n /**\n * @generated from enum value: LOG_ERROR = 0;\n */\n LOG_ERROR = 0,\n\n /**\n * @generated from enum value: LOG_WARN = 1;\n */\n LOG_WARN = 1,\n\n /**\n * @generated from enum value: LOG_INFO = 2;\n */\n LOG_INFO = 2,\n\n /**\n * @generated from enum value: LOG_DEBUG = 3;\n */\n LOG_DEBUG = 3,\n\n /**\n * @generated from enum value: LOG_TRACE = 4;\n */\n LOG_TRACE = 4,\n}\n// Retrieve enum metadata with: proto2.getEnumType(LogLevel)\nproto2.util.setEnumType(LogLevel, \"livekit.proto.LogLevel\", [\n { no: 0, name: \"LOG_ERROR\" },\n { no: 1, name: \"LOG_WARN\" },\n { no: 2, name: \"LOG_INFO\" },\n { no: 3, name: \"LOG_DEBUG\" },\n { no: 4, name: \"LOG_TRACE\" },\n]);\n\n/**\n * This is the input of livekit_ffi_request function\n * We always expect a response (FFIResponse, even if it's empty)\n *\n * @generated from message livekit.proto.FfiRequest\n */\nexport class FfiRequest extends Message<FfiRequest> {\n /**\n * @generated from oneof livekit.proto.FfiRequest.message\n */\n message: {\n /**\n * @generated from field: livekit.proto.DisposeRequest dispose = 2;\n */\n value: DisposeRequest;\n case: \"dispose\";\n } | {\n /**\n * Room\n *\n * @generated from field: livekit.proto.ConnectRequest connect = 3;\n */\n value: ConnectRequest;\n case: \"connect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisconnectRequest disconnect = 4;\n */\n value: DisconnectRequest;\n case: \"disconnect\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTrackRequest publish_track = 5;\n */\n value: PublishTrackRequest;\n case: \"publishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.UnpublishTrackRequest unpublish_track = 6;\n */\n value: UnpublishTrackRequest;\n case: \"unpublishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishDataRequest publish_data = 7;\n */\n value: PublishDataRequest;\n case: \"publishData\";\n } | {\n /**\n * @generated from field: livekit.proto.SetSubscribedRequest set_subscribed = 8;\n */\n value: SetSubscribedRequest;\n case: \"setSubscribed\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalMetadataRequest set_local_metadata = 9;\n */\n value: SetLocalMetadataRequest;\n case: \"setLocalMetadata\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalNameRequest set_local_name = 10;\n */\n value: SetLocalNameRequest;\n case: \"setLocalName\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalAttributesRequest set_local_attributes = 11;\n */\n value: SetLocalAttributesRequest;\n case: \"setLocalAttributes\";\n } | {\n /**\n * @generated from field: livekit.proto.GetSessionStatsRequest get_session_stats = 12;\n */\n value: GetSessionStatsRequest;\n case: \"getSessionStats\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTranscriptionRequest publish_transcription = 13;\n */\n value: PublishTranscriptionRequest;\n case: \"publishTranscription\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishSipDtmfRequest publish_sip_dtmf = 14;\n */\n value: PublishSipDtmfRequest;\n case: \"publishSipDtmf\";\n } | {\n /**\n * Track\n *\n * @generated from field: livekit.proto.CreateVideoTrackRequest create_video_track = 15;\n */\n value: CreateVideoTrackRequest;\n case: \"createVideoTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.CreateAudioTrackRequest create_audio_track = 16;\n */\n value: CreateAudioTrackRequest;\n case: \"createAudioTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.LocalTrackMuteRequest local_track_mute = 17;\n */\n value: LocalTrackMuteRequest;\n case: \"localTrackMute\";\n } | {\n /**\n * @generated from field: livekit.proto.EnableRemoteTrackRequest enable_remote_track = 18;\n */\n value: EnableRemoteTrackRequest;\n case: \"enableRemoteTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.GetStatsRequest get_stats = 19;\n */\n value: GetStatsRequest;\n case: \"getStats\";\n } | {\n /**\n * Video\n *\n * @generated from field: livekit.proto.NewVideoStreamRequest new_video_stream = 20;\n */\n value: NewVideoStreamRequest;\n case: \"newVideoStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewVideoSourceRequest new_video_source = 21;\n */\n value: NewVideoSourceRequest;\n case: \"newVideoSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureVideoFrameRequest capture_video_frame = 22;\n */\n value: CaptureVideoFrameRequest;\n case: \"captureVideoFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoConvertRequest video_convert = 23;\n */\n value: VideoConvertRequest;\n case: \"videoConvert\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoStreamFromParticipantRequest video_stream_from_participant = 24;\n */\n value: VideoStreamFromParticipantRequest;\n case: \"videoStreamFromParticipant\";\n } | {\n /**\n * Audio\n *\n * @generated from field: livekit.proto.NewAudioStreamRequest new_audio_stream = 25;\n */\n value: NewAudioStreamRequest;\n case: \"newAudioStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioSourceRequest new_audio_source = 26;\n */\n value: NewAudioSourceRequest;\n case: \"newAudioSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureAudioFrameRequest capture_audio_frame = 27;\n */\n value: CaptureAudioFrameRequest;\n case: \"captureAudioFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.ClearAudioBufferRequest clear_audio_buffer = 28;\n */\n value: ClearAudioBufferRequest;\n case: \"clearAudioBuffer\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioResamplerRequest new_audio_resampler = 29;\n */\n value: NewAudioResamplerRequest;\n case: \"newAudioResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.RemixAndResampleRequest remix_and_resample = 30;\n */\n value: RemixAndResampleRequest;\n case: \"remixAndResample\";\n } | {\n /**\n * @generated from field: livekit.proto.E2eeRequest e2ee = 31;\n */\n value: E2eeRequest;\n case: \"e2ee\";\n } | {\n /**\n * @generated from field: livekit.proto.AudioStreamFromParticipantRequest audio_stream_from_participant = 32;\n */\n value: AudioStreamFromParticipantRequest;\n case: \"audioStreamFromParticipant\";\n } | {\n /**\n * @generated from field: livekit.proto.NewSoxResamplerRequest new_sox_resampler = 33;\n */\n value: NewSoxResamplerRequest;\n case: \"newSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.PushSoxResamplerRequest push_sox_resampler = 34;\n */\n value: PushSoxResamplerRequest;\n case: \"pushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.FlushSoxResamplerRequest flush_sox_resampler = 35;\n */\n value: FlushSoxResamplerRequest;\n case: \"flushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.SendChatMessageRequest send_chat_message = 36;\n */\n value: SendChatMessageRequest;\n case: \"sendChatMessage\";\n } | {\n /**\n * @generated from field: livekit.proto.EditChatMessageRequest edit_chat_message = 37;\n */\n value: EditChatMessageRequest;\n case: \"editChatMessage\";\n } | {\n /**\n * RPC\n *\n * @generated from field: livekit.proto.PerformRpcRequest perform_rpc = 38;\n */\n value: PerformRpcRequest;\n case: \"performRpc\";\n } | {\n /**\n * @generated from field: livekit.proto.RegisterRpcMethodRequest register_rpc_method = 39;\n */\n value: RegisterRpcMethodRequest;\n case: \"registerRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.UnregisterRpcMethodRequest unregister_rpc_method = 40;\n */\n value: UnregisterRpcMethodRequest;\n case: \"unregisterRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.RpcMethodInvocationResponseRequest rpc_method_invocation_response = 41;\n */\n value: RpcMethodInvocationResponseRequest;\n case: \"rpcMethodInvocationResponse\";\n } | {\n /**\n * Track Publication\n *\n * @generated from field: livekit.proto.EnableRemoteTrackPublicationRequest enable_remote_track_publication = 42;\n */\n value: EnableRemoteTrackPublicationRequest;\n case: \"enableRemoteTrackPublication\";\n } | {\n /**\n * @generated from field: livekit.proto.UpdateRemoteTrackPublicationDimensionRequest update_remote_track_publication_dimension = 43;\n */\n value: UpdateRemoteTrackPublicationDimensionRequest;\n case: \"updateRemoteTrackPublicationDimension\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage<FfiRequest>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.FfiRequest\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 2, name: \"dispose\", kind: \"message\", T: DisposeRequest, oneof: \"message\" },\n { no: 3, name: \"connect\", kind: \"message\", T: ConnectRequest, oneof: \"message\" },\n { no: 4, name: \"disconnect\", kind: \"message\", T: DisconnectRequest, oneof: \"message\" },\n { no: 5, name: \"publish_track\", kind: \"message\", T: PublishTrackRequest, oneof: \"message\" },\n { no: 6, name: \"unpublish_track\", kind: \"message\", T: UnpublishTrackRequest, oneof: \"message\" },\n { no: 7, name: \"publish_data\", kind: \"message\", T: PublishDataRequest, oneof: \"message\" },\n { no: 8, name: \"set_subscribed\", kind: \"message\", T: SetSubscribedRequest, oneof: \"message\" },\n { no: 9, name: \"set_local_metadata\", kind: \"message\", T: SetLocalMetadataRequest, oneof: \"message\" },\n { no: 10, name: \"set_local_name\", kind: \"message\", T: SetLocalNameRequest, oneof: \"message\" },\n { no: 11, name: \"set_local_attributes\", kind: \"message\", T: SetLocalAttributesRequest, oneof: \"message\" },\n { no: 12, name: \"get_session_stats\", kind: \"message\", T: GetSessionStatsRequest, oneof: \"message\" },\n { no: 13, name: \"publish_transcription\", kind: \"message\", T: PublishTranscriptionRequest, oneof: \"message\" },\n { no: 14, name: \"publish_sip_dtmf\", kind: \"message\", T: PublishSipDtmfRequest, oneof: \"message\" },\n { no: 15, name: \"create_video_track\", kind: \"message\", T: CreateVideoTrackRequest, oneof: \"message\" },\n { no: 16, name: \"create_audio_track\", kind: \"message\", T: CreateAudioTrackRequest, oneof: \"message\" },\n { no: 17, name: \"local_track_mute\", kind: \"message\", T: LocalTrackMuteRequest, oneof: \"message\" },\n { no: 18, name: \"enable_remote_track\", kind: \"message\", T: EnableRemoteTrackRequest, oneof: \"message\" },\n { no: 19, name: \"get_stats\", kind: \"message\", T: GetStatsRequest, oneof: \"message\" },\n { no: 20, name: \"new_video_stream\", kind: \"message\", T: NewVideoStreamRequest, oneof: \"message\" },\n { no: 21, name: \"new_video_source\", kind: \"message\", T: NewVideoSourceRequest, oneof: \"message\" },\n { no: 22, name: \"capture_video_frame\", kind: \"message\", T: CaptureVideoFrameRequest, oneof: \"message\" },\n { no: 23, name: \"video_convert\", kind: \"message\", T: VideoConvertRequest, oneof: \"message\" },\n { no: 24, name: \"video_stream_from_participant\", kind: \"message\", T: VideoStreamFromParticipantRequest, oneof: \"message\" },\n { no: 25, name: \"new_audio_stream\", kind: \"message\", T: NewAudioStreamRequest, oneof: \"message\" },\n { no: 26, name: \"new_audio_source\", kind: \"message\", T: NewAudioSourceRequest, oneof: \"message\" },\n { no: 27, name: \"capture_audio_frame\", kind: \"message\", T: CaptureAudioFrameRequest, oneof: \"message\" },\n { no: 28, name: \"clear_audio_buffer\", kind: \"message\", T: ClearAudioBufferRequest, oneof: \"message\" },\n { no: 29, name: \"new_audio_resampler\", kind: \"message\", T: NewAudioResamplerRequest, oneof: \"message\" },\n { no: 30, name: \"remix_and_resample\", kind: \"message\", T: RemixAndResampleRequest, oneof: \"message\" },\n { no: 31, name: \"e2ee\", kind: \"message\", T: E2eeRequest, oneof: \"message\" },\n { no: 32, name: \"audio_stream_from_participant\", kind: \"message\", T: AudioStreamFromParticipantRequest, oneof: \"message\" },\n { no: 33, name: \"new_sox_resampler\", kind: \"message\", T: NewSoxResamplerRequest, oneof: \"message\" },\n { no: 34, name: \"push_sox_resampler\", kind: \"message\", T: PushSoxResamplerRequest, oneof: \"message\" },\n { no: 35, name: \"flush_sox_resampler\", kind: \"message\", T: FlushSoxResamplerRequest, oneof: \"message\" },\n { no: 36, name: \"send_chat_message\", kind: \"message\", T: SendChatMessageRequest, oneof: \"message\" },\n { no: 37, name: \"edit_chat_message\", kind: \"message\", T: EditChatMessageRequest, oneof: \"message\" },\n { no: 38, name: \"perform_rpc\", kind: \"message\", T: PerformRpcRequest, oneof: \"message\" },\n { no: 39, name: \"register_rpc_method\", kind: \"message\", T: RegisterRpcMethodRequest, oneof: \"message\" },\n { no: 40, name: \"unregister_rpc_method\", kind: \"message\", T: UnregisterRpcMethodRequest, oneof: \"message\" },\n { no: 41, name: \"rpc_method_invocation_response\", kind: \"message\", T: RpcMethodInvocationResponseRequest, oneof: \"message\" },\n { no: 42, name: \"enable_remote_track_publication\", kind: \"message\", T: EnableRemoteTrackPublicationRequest, oneof: \"message\" },\n { no: 43, name: \"update_remote_track_publication_dimension\", kind: \"message\", T: UpdateRemoteTrackPublicationDimensionRequest, oneof: \"message\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiRequest {\n return new FfiRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): FfiRequest {\n return new FfiRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): FfiRequest {\n return new FfiRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: FfiRequest | PlainMessage<FfiRequest> | undefined, b: FfiRequest | PlainMessage<FfiRequest> | undefined): boolean {\n return proto2.util.equals(FfiRequest, a, b);\n }\n}\n\n/**\n * This is the output of livekit_ffi_request function.\n *\n * @generated from message livekit.proto.FfiResponse\n */\nexport class FfiResponse extends Message<FfiResponse> {\n /**\n * @generated from oneof livekit.proto.FfiResponse.message\n */\n message: {\n /**\n * @generated from field: livekit.proto.DisposeResponse dispose = 2;\n */\n value: DisposeResponse;\n case: \"dispose\";\n } | {\n /**\n * Room\n *\n * @generated from field: livekit.proto.ConnectResponse connect = 3;\n */\n value: ConnectResponse;\n case: \"connect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisconnectResponse disconnect = 4;\n */\n value: DisconnectResponse;\n case: \"disconnect\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTrackResponse publish_track = 5;\n */\n value: PublishTrackResponse;\n case: \"publishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.UnpublishTrackResponse unpublish_track = 6;\n */\n value: UnpublishTrackResponse;\n case: \"unpublishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishDataResponse publish_data = 7;\n */\n value: PublishDataResponse;\n case: \"publishData\";\n } | {\n /**\n * @generated from field: livekit.proto.SetSubscribedResponse set_subscribed = 8;\n */\n value: SetSubscribedResponse;\n case: \"setSubscribed\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalMetadataResponse set_local_metadata = 9;\n */\n value: SetLocalMetadataResponse;\n case: \"setLocalMetadata\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalNameResponse set_local_name = 10;\n */\n value: SetLocalNameResponse;\n case: \"setLocalName\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalAttributesResponse set_local_attributes = 11;\n */\n value: SetLocalAttributesResponse;\n case: \"setLocalAttributes\";\n } | {\n /**\n * @generated from field: livekit.proto.GetSessionStatsResponse get_session_stats = 12;\n */\n value: GetSessionStatsResponse;\n case: \"getSessionStats\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTranscriptionResponse publish_transcription = 13;\n */\n value: PublishTranscriptionResponse;\n case: \"publishTranscription\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishSipDtmfResponse publish_sip_dtmf = 14;\n */\n value: PublishSipDtmfResponse;\n case: \"publishSipDtmf\";\n } | {\n /**\n * Track\n *\n * @generated from field: livekit.proto.CreateVideoTrackResponse create_video_track = 15;\n */\n value: CreateVideoTrackResponse;\n case: \"createVideoTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.CreateAudioTrackResponse create_audio_track = 16;\n */\n value: CreateAudioTrackResponse;\n case: \"createAudioTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.LocalTrackMuteResponse local_track_mute = 17;\n */\n value: LocalTrackMuteResponse;\n case: \"localTrackMute\";\n } | {\n /**\n * @generated from field: livekit.proto.EnableRemoteTrackResponse enable_remote_track = 18;\n */\n value: EnableRemoteTrackResponse;\n case: \"enableRemoteTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.GetStatsResponse get_stats = 19;\n */\n value: GetStatsResponse;\n case: \"getStats\";\n } | {\n /**\n * Video\n *\n * @generated from field: livekit.proto.NewVideoStreamResponse new_video_stream = 20;\n */\n value: NewVideoStreamResponse;\n case: \"newVideoStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewVideoSourceResponse new_video_source = 21;\n */\n value: NewVideoSourceResponse;\n case: \"newVideoSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureVideoFrameResponse capture_video_frame = 22;\n */\n value: CaptureVideoFrameResponse;\n case: \"captureVideoFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoConvertResponse video_convert = 23;\n */\n value: VideoConvertResponse;\n case: \"videoConvert\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoStreamFromParticipantResponse video_stream_from_participant = 24;\n */\n value: VideoStreamFromParticipantResponse;\n case: \"videoStreamFromParticipant\";\n } | {\n /**\n * Audio\n *\n * @generated from field: livekit.proto.NewAudioStreamResponse new_audio_stream = 25;\n */\n value: NewAudioStreamResponse;\n case: \"newAudioStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioSourceResponse new_audio_source = 26;\n */\n value: NewAudioSourceResponse;\n case: \"newAudioSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureAudioFrameResponse capture_audio_frame = 27;\n */\n value: CaptureAudioFrameResponse;\n case: \"captureAudioFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.ClearAudioBufferResponse clear_audio_buffer = 28;\n */\n value: ClearAudioBufferResponse;\n case: \"clearAudioBuffer\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioResamplerResponse new_audio_resampler = 29;\n */\n value: NewAudioResamplerResponse;\n case: \"newAudioResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.RemixAndResampleResponse remix_and_resample = 30;\n */\n value: RemixAndResampleResponse;\n case: \"remixAndResample\";\n } | {\n /**\n * @generated from field: livekit.proto.AudioStreamFromParticipantResponse audio_stream_from_participant = 31;\n */\n value: AudioStreamFromParticipantResponse;\n case: \"audioStreamFromParticipant\";\n } | {\n /**\n * @generated from field: livekit.proto.E2eeResponse e2ee = 32;\n */\n value: E2eeResponse;\n case: \"e2ee\";\n } | {\n /**\n * @generated from field: livekit.proto.NewSoxResamplerResponse new_sox_resampler = 33;\n */\n value: NewSoxResamplerResponse;\n case: \"newSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.PushSoxResamplerResponse push_sox_resampler = 34;\n */\n value: PushSoxResamplerResponse;\n case: \"pushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.FlushSoxResamplerResponse flush_sox_resampler = 35;\n */\n value: FlushSoxResamplerResponse;\n case: \"flushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.SendChatMessageResponse send_chat_message = 36;\n */\n value: SendChatMessageResponse;\n case: \"sendChatMessage\";\n } | {\n /**\n * RPC\n *\n * @generated from field: livekit.proto.PerformRpcResponse perform_rpc = 37;\n */\n value: PerformRpcResponse;\n case: \"performRpc\";\n } | {\n /**\n * @generated from field: livekit.proto.RegisterRpcMethodResponse register_rpc_method = 38;\n */\n value: RegisterRpcMethodResponse;\n case: \"registerRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.UnregisterRpcMethodResponse unregister_rpc_method = 39;\n */\n value: UnregisterRpcMethodResponse;\n case: \"unregisterRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.RpcMethodInvocationResponseResponse rpc_method_invocation_response = 40;\n */\n value: RpcMethodInvocationResponseResponse;\n case: \"rpcMethodInvocationResponse\";\n } | {\n /**\n * Track Publication\n *\n * @generated from field: livekit.proto.EnableRemoteTrackPublicationResponse enable_remote_track_publication = 41;\n */\n value: EnableRemoteTrackPublicationResponse;\n case: \"enableRemoteTrackPublication\";\n } | {\n /**\n * @generated from field: livekit.proto.UpdateRemoteTrackPublicationDimensionResponse update_remote_track_publication_dimension = 42;\n */\n value: UpdateRemoteTrackPublicationDimensionResponse;\n case: \"updateRemoteTrackPublicationDimension\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage<FfiResponse>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.FfiResponse\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 2, name: \"dispose\", kind: \"message\", T: DisposeResponse, oneof: \"message\" },\n { no: 3, name: \"connect\", kind: \"message\", T: ConnectResponse, oneof: \"message\" },\n { no: 4, name: \"disconnect\", kind: \"message\", T: DisconnectResponse, oneof: \"message\" },\n { no: 5, name: \"publish_track\", kind: \"message\", T: PublishTrackResponse, oneof: \"message\" },\n { no: 6, name: \"unpublish_track\", kind: \"message\", T: UnpublishTrackResponse, oneof: \"message\" },\n { no: 7, name: \"publish_data\", kind: \"message\", T: PublishDataResponse, oneof: \"message\" },\n { no: 8, name: \"set_subscribed\", kind: \"message\", T: SetSubscribedResponse, oneof: \"message\" },\n { no: 9, name: \"set_local_metadata\", kind: \"message\", T: SetLocalMetadataResponse, oneof: \"message\" },\n { no: 10, name: \"set_local_name\", kind: \"message\", T: SetLocalNameResponse, oneof: \"message\" },\n { no: 11, name: \"set_local_attributes\", kind: \"message\", T: SetLocalAttributesResponse, oneof: \"message\" },\n { no: 12, name: \"get_session_stats\", kind: \"message\", T: GetSessionStatsResponse, oneof: \"message\" },\n { no: 13, name: \"publish_transcription\", kind: \"message\", T: PublishTranscriptionResponse, oneof: \"message\" },\n { no: 14, name: \"publish_sip_dtmf\", kind: \"message\", T: PublishSipDtmfResponse, oneof: \"message\" },\n { no: 15, name: \"create_video_track\", kind: \"message\", T: CreateVideoTrackResponse, oneof: \"message\" },\n { no: 16, name: \"create_audio_track\", kind: \"message\", T: CreateAudioTrackResponse, oneof: \"message\" },\n { no: 17, name: \"local_track_mute\", kind: \"message\", T: LocalTrackMuteResponse, oneof: \"message\" },\n { no: 18, name: \"enable_remote_track\", kind: \"message\", T: EnableRemoteTrackResponse, oneof: \"message\" },\n { no: 19, name: \"get_stats\", kind: \"message\", T: GetStatsResponse, oneof: \"message\" },\n { no: 20, name: \"new_video_stream\", kind: \"message\", T: NewVideoStreamResponse, oneof: \"message\" },\n { no: 21, name: \"new_video_source\", kind: \"message\", T: NewVideoSourceResponse, oneof: \"message\" },\n { no: 22, name: \"capture_video_frame\", kind: \"message\", T: CaptureVideoFrameResponse, oneof: \"message\" },\n { no: 23, name: \"video_convert\", kind: \"message\", T: VideoConvertResponse, oneof: \"message\" },\n { no: 24, name: \"video_stream_from_participant\", kind: \"message\", T: VideoStreamFromParticipantResponse, oneof: \"message\" },\n { no: 25, name: \"new_audio_stream\", kind: \"message\", T: NewAudioStreamResponse, oneof: \"message\" },\n { no: 26, name: \"new_audio_source\", kind: \"message\", T: NewAudioSourceResponse, oneof: \"message\" },\n { no: 27, name: \"capture_audio_frame\", kind: \"message\", T: CaptureAudioFrameResponse, oneof: \"message\" },\n { no: 28, name: \"clear_audio_buffer\", kind: \"message\", T: ClearAudioBufferResponse, oneof: \"message\" },\n { no: 29, name: \"new_audio_resampler\", kind: \"message\", T: NewAudioResamplerResponse, oneof: \"message\" },\n { no: 30, name: \"remix_and_resample\", kind: \"message\", T: RemixAndResampleResponse, oneof: \"message\" },\n { no: 31, name: \"audio_stream_from_participant\", kind: \"message\", T: AudioStreamFromParticipantResponse, oneof: \"message\" },\n { no: 32, name: \"e2ee\", kind: \"message\", T: E2eeResponse, oneof: \"message\" },\n { no: 33, name: \"new_sox_resampler\", kind: \"message\", T: NewSoxResamplerResponse, oneof: \"message\" },\n { no: 34, name: \"push_sox_resampler\", kind: \"message\", T: PushSoxResamplerResponse, oneof: \"message\" },\n { no: 35, name: \"flush_sox_resampler\", kind: \"message\", T: FlushSoxResamplerResponse, oneof: \"message\" },\n { no: 36, name: \"send_chat_message\", kind: \"message\", T: SendChatMessageResponse, oneof: \"message\" },\n { no: 37, name: \"perform_rpc\", kind: \"message\", T: PerformRpcResponse, oneof: \"message\" },\n { no: 38, name: \"register_rpc_method\", kind: \"message\", T: RegisterRpcMethodResponse, oneof: \"message\" },\n { no: 39, name: \"unregister_rpc_method\", kind: \"message\", T: UnregisterRpcMethodResponse, oneof: \"message\" },\n { no: 40, name: \"rpc_method_invocation_response\", kind: \"message\", T: RpcMethodInvocationResponseResponse, oneof: \"message\" },\n { no: 41, name: \"enable_remote_track_publication\", kind: \"message\", T: EnableRemoteTrackPublicationResponse, oneof: \"message\" },\n { no: 42, name: \"update_remote_track_publication_dimension\", kind: \"message\", T: UpdateRemoteTrackPublicationDimensionResponse, oneof: \"message\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiResponse {\n return new FfiResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): FfiResponse {\n return new FfiResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): FfiResponse {\n return new FfiResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: FfiResponse | PlainMessage<FfiResponse> | undefined, b: FfiResponse | PlainMessage<FfiResponse> | undefined): boolean {\n return proto2.util.equals(FfiResponse, a, b);\n }\n}\n\n/**\n * To minimize complexity, participant events are not included in the protocol.\n * It is easily deducible from the room events and it turned out that is is easier to implement\n * on the ffi client side.\n *\n * @generated from message livekit.proto.FfiEvent\n */\nexport class FfiEvent extends Message<FfiEvent> {\n /**\n * @generated from oneof livekit.proto.FfiEvent.message\n */\n message: {\n /**\n * @generated from field: livekit.proto.RoomEvent room_event = 1;\n */\n value: RoomEvent;\n case: \"roomEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.TrackEvent track_event = 2;\n */\n value: TrackEvent;\n case: \"trackEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoStreamEvent video_stream_event = 3;\n */\n value: VideoStreamEvent;\n case: \"videoStreamEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.AudioStreamEvent audio_stream_event = 4;\n */\n value: AudioStreamEvent;\n case: \"audioStreamEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.ConnectCallback connect = 5;\n */\n value: ConnectCallback;\n case: \"connect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisconnectCallback disconnect = 7;\n */\n value: DisconnectCallback;\n case: \"disconnect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisposeCallback dispose = 8;\n */\n value: DisposeCallback;\n case: \"dispose\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTrackCallback publish_track = 9;\n */\n value: PublishTrackCallback;\n case: \"publishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.UnpublishTrackCallback unpublish_track = 10;\n */\n value: UnpublishTrackCallback;\n case: \"unpublishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishDataCallback publish_data = 11;\n */\n value: PublishDataCallback;\n case: \"publishData\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTranscriptionCallback publish_transcription = 12;\n */\n value: PublishTranscriptionCallback;\n case: \"publishTranscription\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureAudioFrameCallback capture_audio_frame = 13;\n */\n value: CaptureAudioFrameCallback;\n case: \"captureAudioFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalMetadataCallback set_local_metadata = 14;\n */\n value: SetLocalMetadataCallback;\n case: \"setLocalMetadata\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalNameCallback set_local_name = 15;\n */\n value: SetLocalNameCallback;\n case: \"setLocalName\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalAttributesCallback set_local_attributes = 16;\n */\n value: SetLocalAttributesCallback;\n case: \"setLocalAttributes\";\n } | {\n /**\n * @generated from field: livekit.proto.GetStatsCallback get_stats = 17;\n */\n value: GetStatsCallback;\n case: \"getStats\";\n } | {\n /**\n * @generated from field: livekit.proto.LogBatch logs = 18;\n */\n value: LogBatch;\n case: \"logs\";\n } | {\n /**\n * @generated from field: livekit.proto.GetSessionStatsCallback get_session_stats = 19;\n */\n value: GetSessionStatsCallback;\n case: \"getSessionStats\";\n } | {\n /**\n * @generated from field: livekit.proto.Panic panic = 20;\n */\n value: Panic;\n case: \"panic\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishSipDtmfCallback publish_sip_dtmf = 21;\n */\n value: PublishSipDtmfCallback;\n case: \"publishSipDtmf\";\n } | {\n /**\n * @generated from field: livekit.proto.SendChatMessageCallback chat_message = 22;\n */\n value: SendChatMessageCallback;\n case: \"chatMessage\";\n } | {\n /**\n * @generated from field: livekit.proto.PerformRpcCallback perform_rpc = 23;\n */\n value: PerformRpcCallback;\n case: \"performRpc\";\n } | {\n /**\n * @generated from field: livekit.proto.RpcMethodInvocationEvent rpc_method_invocation = 24;\n */\n value: RpcMethodInvocationEvent;\n case: \"rpcMethodInvocation\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage<FfiEvent>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.FfiEvent\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"room_event\", kind: \"message\", T: RoomEvent, oneof: \"message\" },\n { no: 2, name: \"track_event\", kind: \"message\", T: TrackEvent, oneof: \"message\" },\n { no: 3, name: \"video_stream_event\", kind: \"message\", T: VideoStreamEvent, oneof: \"message\" },\n { no: 4, name: \"audio_stream_event\", kind: \"message\", T: AudioStreamEvent, oneof: \"message\" },\n { no: 5, name: \"connect\", kind: \"message\", T: ConnectCallback, oneof: \"message\" },\n { no: 7, name: \"disconnect\", kind: \"message\", T: DisconnectCallback, oneof: \"message\" },\n { no: 8, name: \"dispose\", kind: \"message\", T: DisposeCallback, oneof: \"message\" },\n { no: 9, name: \"publish_track\", kind: \"message\", T: PublishTrackCallback, oneof: \"message\" },\n { no: 10, name: \"unpublish_track\", kind: \"message\", T: UnpublishTrackCallback, oneof: \"message\" },\n { no: 11, name: \"publish_data\", kind: \"message\", T: PublishDataCallback, oneof: \"message\" },\n { no: 12, name: \"publish_transcription\", kind: \"message\", T: PublishTranscriptionCallback, oneof: \"message\" },\n { no: 13, name: \"capture_audio_frame\", kind: \"message\", T: CaptureAudioFrameCallback, oneof: \"message\" },\n { no: 14, name: \"set_local_metadata\", kind: \"message\", T: SetLocalMetadataCallback, oneof: \"message\" },\n { no: 15, name: \"set_local_name\", kind: \"message\", T: SetLocalNameCallback, oneof: \"message\" },\n { no: 16, name: \"set_local_attributes\", kind: \"message\", T: SetLocalAttributesCallback, oneof: \"message\" },\n { no: 17, name: \"get_stats\", kind: \"message\", T: GetStatsCallback, oneof: \"message\" },\n { no: 18, name: \"logs\", kind: \"message\", T: LogBatch, oneof: \"message\" },\n { no: 19, name: \"get_session_stats\", kind: \"message\", T: GetSessionStatsCallback, oneof: \"message\" },\n { no: 20, name: \"panic\", kind: \"message\", T: Panic, oneof: \"message\" },\n { no: 21, name: \"publish_sip_dtmf\", kind: \"message\", T: PublishSipDtmfCallback, oneof: \"message\" },\n { no: 22, name: \"chat_message\", kind: \"message\", T: SendChatMessageCallback, oneof: \"message\" },\n { no: 23, name: \"perform_rpc\", kind: \"message\", T: PerformRpcCallback, oneof: \"message\" },\n { no: 24, name: \"rpc_method_invocation\", kind: \"message\", T: RpcMethodInvocationEvent, oneof: \"message\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiEvent {\n return new FfiEvent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): FfiEvent {\n return new FfiEvent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): FfiEvent {\n return new FfiEvent().fromJsonString(jsonString, options);\n }\n\n static equals(a: FfiEvent | PlainMessage<FfiEvent> | undefined, b: FfiEvent | PlainMessage<FfiEvent> | undefined): boolean {\n return proto2.util.equals(FfiEvent, a, b);\n }\n}\n\n/**\n * Stop all rooms synchronously (Do we need async here?).\n * e.g: This is used for the Unity Editor after each assemblies reload.\n * TODO(theomonnom): Implement a debug mode where we can find all leaked handles?\n *\n * @generated from message livekit.proto.DisposeRequest\n */\nexport class DisposeRequest extends Message<DisposeRequest> {\n /**\n * @generated from field: required bool async = 1;\n */\n async?: boolean;\n\n constructor(data?: PartialMessage<DisposeRequest>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.DisposeRequest\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"async\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DisposeRequest {\n return new DisposeRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DisposeRequest {\n return new DisposeRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DisposeRequest {\n return new DisposeRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisposeRequest | PlainMessage<DisposeRequest> | undefined, b: DisposeRequest | PlainMessage<DisposeRequest> | undefined): boolean {\n return proto2.util.equals(DisposeRequest, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.DisposeResponse\n */\nexport class DisposeResponse extends Message<DisposeResponse> {\n /**\n * None if sync\n *\n * @generated from field: optional uint64 async_id = 1;\n */\n asyncId?: bigint;\n\n constructor(data?: PartialMessage<DisposeResponse>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.DisposeResponse\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"async_id\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DisposeResponse {\n return new DisposeResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DisposeResponse {\n return new DisposeResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DisposeResponse {\n return new DisposeResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisposeResponse | PlainMessage<DisposeResponse> | undefined, b: DisposeResponse | PlainMessage<DisposeResponse> | undefined): boolean {\n return proto2.util.equals(DisposeResponse, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.DisposeCallback\n */\nexport class DisposeCallback extends Message<DisposeCallback> {\n /**\n * @generated from field: required uint64 async_id = 1;\n */\n asyncId?: bigint;\n\n constructor(data?: PartialMessage<DisposeCallback>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.DisposeCallback\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"async_id\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DisposeCallback {\n return new DisposeCallback().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DisposeCallback {\n return new DisposeCallback().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DisposeCallback {\n return new DisposeCallback().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisposeCallback | PlainMessage<DisposeCallback> | undefined, b: DisposeCallback | PlainMessage<DisposeCallback> | undefined): boolean {\n return proto2.util.equals(DisposeCallback, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.LogRecord\n */\nexport class LogRecord extends Message<LogRecord> {\n /**\n * @generated from field: required livekit.proto.LogLevel level = 1;\n */\n level?: LogLevel;\n\n /**\n * e.g \"livekit\", \"libwebrtc\", \"tokio-tungstenite\", etc...\n *\n * @generated from field: required string target = 2;\n */\n target?: string;\n\n /**\n * @generated from field: optional string module_path = 3;\n */\n modulePath?: string;\n\n /**\n * @generated from field: optional string file = 4;\n */\n file?: string;\n\n /**\n * @generated from field: optional uint32 line = 5;\n */\n line?: number;\n\n /**\n * @generated from field: required string message = 6;\n */\n message?: string;\n\n constructor(data?: PartialMessage<LogRecord>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.LogRecord\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"level\", kind: \"enum\", T: proto2.getEnumType(LogLevel), req: true },\n { no: 2, name: \"target\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, req: true },\n { no: 3, name: \"module_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"line\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */, opt: true },\n { no: 6, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LogRecord {\n return new LogRecord().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LogRecord {\n return new LogRecord().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LogRecord {\n return new LogRecord().fromJsonString(jsonString, options);\n }\n\n static equals(a: LogRecord | PlainMessage<LogRecord> | undefined, b: LogRecord | PlainMessage<LogRecord> | undefined): boolean {\n return proto2.util.equals(LogRecord, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.LogBatch\n */\nexport class LogBatch extends Message<LogBatch> {\n /**\n * @generated from field: repeated livekit.proto.LogRecord records = 1;\n */\n records: LogRecord[] = [];\n\n constructor(data?: PartialMessage<LogBatch>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.LogBatch\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"records\", kind: \"message\", T: LogRecord, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LogBatch {\n return new LogBatch().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LogBatch {\n return new LogBatch().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LogBatch {\n return new LogBatch().fromJsonString(jsonString, options);\n }\n\n static equals(a: LogBatch | PlainMessage<LogBatch> | undefined, b: LogBatch | PlainMessage<LogBatch> | undefined): boolean {\n return proto2.util.equals(LogBatch, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.Panic\n */\nexport class Panic extends Message<Panic> {\n /**\n * @generated from field: required string message = 1;\n */\n message?: string;\n\n constructor(data?: PartialMessage<Panic>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.Panic\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Panic {\n return new Panic().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Panic {\n return new Panic().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Panic {\n return new Panic().fromJsonString(jsonString, options);\n }\n\n static equals(a: Panic | PlainMessage<Panic> | undefined, b: Panic | PlainMessage<Panic> | undefined): boolean {\n return proto2.util.equals(Panic, a, b);\n }\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBA,sBAAgC;AAChC,qBAAu6B;AACv6B,sBAA0R;AAC1R,4BAAsS;AACtS,4BAA0kB;AAC1kB,qBAA0C;AAC1C,oBAA2R;AAC3R,kCAAuL;AAKhL,IAAK,WAAL,kBAAKA,cAAL;AAIL,EAAAA,oBAAA,eAAY,KAAZ;AAKA,EAAAA,oBAAA,cAAW,KAAX;AAKA,EAAAA,oBAAA,cAAW,KAAX;AAKA,EAAAA,oBAAA,eAAY,KAAZ;AAKA,EAAAA,oBAAA,eAAY,KAAZ;AAxBU,SAAAA;AAAA,GAAA;AA2BZ,uBAAO,KAAK,YAAY,UAAU,0BAA0B;AAAA,EAC1D,EAAE,IAAI,GAAG,MAAM,YAAY;AAAA,EAC3B,EAAE,IAAI,GAAG,MAAM,WAAW;AAAA,EAC1B,EAAE,IAAI,GAAG,MAAM,WAAW;AAAA,EAC1B,EAAE,IAAI,GAAG,MAAM,YAAY;AAAA,EAC3B,EAAE,IAAI,GAAG,MAAM,YAAY;AAC7B,CAAC;AAQM,MAAM,cAAN,MAAM,oBAAmB,wBAAoB;AAAA,EA8QlD,YAAY,MAAmC;AAC7C,UAAM;AA3QR;AAAA;AAAA;AAAA,mBAwQ6C,EAAE,MAAM,OAAU;AAI7D,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAiDA,OAAO,WAAW,OAAmB,SAAkD;AACrF,WAAO,IAAI,YAAW,EAAE,WAAW,OAAO,OAAO;AAAA,EACnD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAAgD;AACpF,WAAO,IAAI,YAAW,EAAE,SAAS,WAAW,OAAO;AAAA,EACrD;AAAA,EAEA,OAAO,eAAe,YAAoB,SAAgD;AACxF,WAAO,IAAI,YAAW,EAAE,eAAe,YAAY,OAAO;AAAA,EAC5D;AAAA,EAEA,OAAO,OAAO,GAAsD,GAA+D;AACjI,WAAO,uBAAO,KAAK,OAAO,aAAY,GAAG,CAAC;AAAA,EAC5C;AACF;AAjVa,YAmRK,UAAyB;AAnR9B,YAoRK,WAAW;AApRhB,YAqRK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,WAAW,GAAG,gBAAgB,OAAO,UAAU;AAAA,EAC/E,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,WAAW,GAAG,+BAAgB,OAAO,UAAU;AAAA,EAC/E,EAAE,IAAI,GAAG,MAAM,cAAc,MAAM,WAAW,GAAG,kCAAmB,OAAO,UAAU;AAAA,EACrF,EAAE,IAAI,GAAG,MAAM,iBAAiB,MAAM,WAAW,GAAG,oCAAqB,OAAO,UAAU;AAAA,EAC1F,EAAE,IAAI,GAAG,MAAM,mBAAmB,MAAM,WAAW,GAAG,sCAAuB,OAAO,UAAU;AAAA,EAC9F,EAAE,IAAI,GAAG,MAAM,gBAAgB,MAAM,WAAW,GAAG,mCAAoB,OAAO,UAAU;AAAA,EACxF,EAAE,IAAI,GAAG,MAAM,kBAAkB,MAAM,WAAW,GAAG,qCAAsB,OAAO,UAAU;AAAA,EAC5F,EAAE,IAAI,GAAG,MAAM,sBAAsB,MAAM,WAAW,GAAG,wCAAyB,OAAO,UAAU;AAAA,EACnG,EAAE,IAAI,IAAI,MAAM,kBAAkB,MAAM,WAAW,GAAG,oCAAqB,OAAO,UAAU;AAAA,EAC5F,EAAE,IAAI,IAAI,MAAM,wBAAwB,MAAM,WAAW,GAAG,0CAA2B,OAAO,UAAU;AAAA,EACxG,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,uCAAwB,OAAO,UAAU;AAAA,EAClG,EAAE,IAAI,IAAI,MAAM,yBAAyB,MAAM,WAAW,GAAG,4CAA6B,OAAO,UAAU;AAAA,EAC3G,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,sCAAuB,OAAO,UAAU;AAAA,EAChG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,yCAAyB,OAAO,UAAU;AAAA,EACpG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,yCAAyB,OAAO,UAAU;AAAA,EACpG,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,uCAAuB,OAAO,UAAU;AAAA,EAChG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,0CAA0B,OAAO,UAAU;AAAA,EACtG,EAAE,IAAI,IAAI,MAAM,aAAa,MAAM,WAAW,GAAG,iCAAiB,OAAO,UAAU;AAAA,EACnF,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,6CAAuB,OAAO,UAAU;AAAA,EAChG,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,6CAAuB,OAAO,UAAU;AAAA,EAChG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,gDAA0B,OAAO,UAAU;AAAA,EACtG,EAAE,IAAI,IAAI,MAAM,iBAAiB,MAAM,WAAW,GAAG,2CAAqB,OAAO,UAAU;AAAA,EAC3F,EAAE,IAAI,IAAI,MAAM,iCAAiC,MAAM,WAAW,GAAG,yDAAmC,OAAO,UAAU;AAAA,EACzH,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,6CAAuB,OAAO,UAAU;AAAA,EAChG,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,6CAAuB,OAAO,UAAU;AAAA,EAChG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,gDAA0B,OAAO,UAAU;AAAA,EACtG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,+CAAyB,OAAO,UAAU;AAAA,EACpG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,gDAA0B,OAAO,UAAU;AAAA,EACtG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,+CAAyB,OAAO,UAAU;AAAA,EACpG,EAAE,IAAI,IAAI,MAAM,QAAQ,MAAM,WAAW,GAAG,4BAAa,OAAO,UAAU;AAAA,EAC1E,EAAE,IAAI,IAAI,MAAM,iCAAiC,MAAM,WAAW,GAAG,yDAAmC,OAAO,UAAU;AAAA,EACzH,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,8CAAwB,OAAO,UAAU;AAAA,EAClG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,+CAAyB,OAAO,UAAU;AAAA,EACpG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,gDAA0B,OAAO,UAAU;AAAA,EACtG,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,uCAAwB,OAAO,UAAU;AAAA,EAClG,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,uCAAwB,OAAO,UAAU;AAAA,EAClG,EAAE,IAAI,IAAI,MAAM,eAAe,MAAM,WAAW,GAAG,iCAAmB,OAAO,UAAU;AAAA,EACvF,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,wCAA0B,OAAO,UAAU;AAAA,EACtG,EAAE,IAAI,IAAI,MAAM,yBAAyB,MAAM,WAAW,GAAG,0CAA4B,OAAO,UAAU;AAAA,EAC1G,EAAE,IAAI,IAAI,MAAM,kCAAkC,MAAM,WAAW,GAAG,kDAAoC,OAAO,UAAU;AAAA,EAC3H,EAAE,IAAI,IAAI,MAAM,mCAAmC,MAAM,WAAW,GAAG,iEAAqC,OAAO,UAAU;AAAA,EAC7H,EAAE,IAAI,IAAI,MAAM,6CAA6C,MAAM,WAAW,GAAG,0EAA8C,OAAO,UAAU;AAClJ,CAAC;AAhUI,IAAM,aAAN;AAwVA,MAAM,eAAN,MAAM,qBAAoB,wBAAqB;AAAA,EAwQpD,YAAY,MAAoC;AAC9C,UAAM;AArQR;AAAA;AAAA;AAAA,mBAkQ6C,EAAE,MAAM,OAAU;AAI7D,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAgDA,OAAO,WAAW,OAAmB,SAAmD;AACtF,WAAO,IAAI,aAAY,EAAE,WAAW,OAAO,OAAO;AAAA,EACpD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAAiD;AACrF,WAAO,IAAI,aAAY,EAAE,SAAS,WAAW,OAAO;AAAA,EACtD;AAAA,EAEA,OAAO,eAAe,YAAoB,SAAiD;AACzF,WAAO,IAAI,aAAY,EAAE,eAAe,YAAY,OAAO;AAAA,EAC7D;AAAA,EAEA,OAAO,OAAO,GAAwD,GAAiE;AACrI,WAAO,uBAAO,KAAK,OAAO,cAAa,GAAG,CAAC;AAAA,EAC7C;AACF;AA1Ua,aA6QK,UAAyB;AA7Q9B,aA8QK,WAAW;AA9QhB,aA+QK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,WAAW,GAAG,iBAAiB,OAAO,UAAU;AAAA,EAChF,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,WAAW,GAAG,gCAAiB,OAAO,UAAU;AAAA,EAChF,EAAE,IAAI,GAAG,MAAM,cAAc,MAAM,WAAW,GAAG,mCAAoB,OAAO,UAAU;AAAA,EACtF,EAAE,IAAI,GAAG,MAAM,iBAAiB,MAAM,WAAW,GAAG,qCAAsB,OAAO,UAAU;AAAA,EAC3F,EAAE,IAAI,GAAG,MAAM,mBAAmB,MAAM,WAAW,GAAG,uCAAwB,OAAO,UAAU;AAAA,EAC/F,EAAE,IAAI,GAAG,MAAM,gBAAgB,MAAM,WAAW,GAAG,oCAAqB,OAAO,UAAU;AAAA,EACzF,EAAE,IAAI,GAAG,MAAM,kBAAkB,MAAM,WAAW,GAAG,sCAAuB,OAAO,UAAU;AAAA,EAC7F,EAAE,IAAI,GAAG,MAAM,sBAAsB,MAAM,WAAW,GAAG,yCAA0B,OAAO,UAAU;AAAA,EACpG,EAAE,IAAI,IAAI,MAAM,kBAAkB,MAAM,WAAW,GAAG,qCAAsB,OAAO,UAAU;AAAA,EAC7F,EAAE,IAAI,IAAI,MAAM,wBAAwB,MAAM,WAAW,GAAG,2CAA4B,OAAO,UAAU;AAAA,EACzG,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,wCAAyB,OAAO,UAAU;AAAA,EACnG,EAAE,IAAI,IAAI,MAAM,yBAAyB,MAAM,WAAW,GAAG,6CAA8B,OAAO,UAAU;AAAA,EAC5G,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,uCAAwB,OAAO,UAAU;AAAA,EACjG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,0CAA0B,OAAO,UAAU;AAAA,EACrG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,0CAA0B,OAAO,UAAU;AAAA,EACrG,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,wCAAwB,OAAO,UAAU;AAAA,EACjG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,2CAA2B,OAAO,UAAU;AAAA,EACvG,EAAE,IAAI,IAAI,MAAM,aAAa,MAAM,WAAW,GAAG,kCAAkB,OAAO,UAAU;AAAA,EACpF,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,8CAAwB,OAAO,UAAU;AAAA,EACjG,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,8CAAwB,OAAO,UAAU;AAAA,EACjG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,iDAA2B,OAAO,UAAU;AAAA,EACvG,EAAE,IAAI,IAAI,MAAM,iBAAiB,MAAM,WAAW,GAAG,4CAAsB,OAAO,UAAU;AAAA,EAC5F,EAAE,IAAI,IAAI,MAAM,iCAAiC,MAAM,WAAW,GAAG,0DAAoC,OAAO,UAAU;AAAA,EAC1H,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,8CAAwB,OAAO,UAAU;AAAA,EACjG,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,8CAAwB,OAAO,UAAU;AAAA,EACjG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,iDAA2B,OAAO,UAAU;AAAA,EACvG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,gDAA0B,OAAO,UAAU;AAAA,EACrG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,iDAA2B,OAAO,UAAU;AAAA,EACvG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,gDAA0B,OAAO,UAAU;AAAA,EACrG,EAAE,IAAI,IAAI,MAAM,iCAAiC,MAAM,WAAW,GAAG,0DAAoC,OAAO,UAAU;AAAA,EAC1H,EAAE,IAAI,IAAI,MAAM,QAAQ,MAAM,WAAW,GAAG,6BAAc,OAAO,UAAU;AAAA,EAC3E,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,+CAAyB,OAAO,UAAU;AAAA,EACnG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,gDAA0B,OAAO,UAAU;AAAA,EACrG,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,iDAA2B,OAAO,UAAU;AAAA,EACvG,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,wCAAyB,OAAO,UAAU;AAAA,EACnG,EAAE,IAAI,IAAI,MAAM,eAAe,MAAM,WAAW,GAAG,kCAAoB,OAAO,UAAU;AAAA,EACxF,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,yCAA2B,OAAO,UAAU;AAAA,EACvG,EAAE,IAAI,IAAI,MAAM,yBAAyB,MAAM,WAAW,GAAG,2CAA6B,OAAO,UAAU;AAAA,EAC3G,EAAE,IAAI,IAAI,MAAM,kCAAkC,MAAM,WAAW,GAAG,mDAAqC,OAAO,UAAU;AAAA,EAC5H,EAAE,IAAI,IAAI,MAAM,mCAAmC,MAAM,WAAW,GAAG,kEAAsC,OAAO,UAAU;AAAA,EAC9H,EAAE,IAAI,IAAI,MAAM,6CAA6C,MAAM,WAAW,GAAG,2EAA+C,OAAO,UAAU;AACnJ,CAAC;AAzTI,IAAM,cAAN;AAmVA,MAAM,YAAN,MAAM,kBAAiB,wBAAkB;AAAA,EAgJ9C,YAAY,MAAiC;AAC3C,UAAM;AA7IR;AAAA;AAAA;AAAA,mBA0I6C,EAAE,MAAM,OAAU;AAI7D,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EA8BA,OAAO,WAAW,OAAmB,SAAgD;AACnF,WAAO,IAAI,UAAS,EAAE,WAAW,OAAO,OAAO;AAAA,EACjD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAA8C;AAClF,WAAO,IAAI,UAAS,EAAE,SAAS,WAAW,OAAO;AAAA,EACnD;AAAA,EAEA,OAAO,eAAe,YAAoB,SAA8C;AACtF,WAAO,IAAI,UAAS,EAAE,eAAe,YAAY,OAAO;AAAA,EAC1D;AAAA,EAEA,OAAO,OAAO,GAAkD,GAA2D;AACzH,WAAO,uBAAO,KAAK,OAAO,WAAU,GAAG,CAAC;AAAA,EAC1C;AACF;AAhMa,UAqJK,UAAyB;AArJ9B,UAsJK,WAAW;AAtJhB,UAuJK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,cAAc,MAAM,WAAW,GAAG,0BAAW,OAAO,UAAU;AAAA,EAC7E,EAAE,IAAI,GAAG,MAAM,eAAe,MAAM,WAAW,GAAG,4BAAY,OAAO,UAAU;AAAA,EAC/E,EAAE,IAAI,GAAG,MAAM,sBAAsB,MAAM,WAAW,GAAG,wCAAkB,OAAO,UAAU;AAAA,EAC5F,EAAE,IAAI,GAAG,MAAM,sBAAsB,MAAM,WAAW,GAAG,wCAAkB,OAAO,UAAU;AAAA,EAC5F,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,WAAW,GAAG,gCAAiB,OAAO,UAAU;AAAA,EAChF,EAAE,IAAI,GAAG,MAAM,cAAc,MAAM,WAAW,GAAG,mCAAoB,OAAO,UAAU;AAAA,EACtF,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,WAAW,GAAG,iBAAiB,OAAO,UAAU;AAAA,EAChF,EAAE,IAAI,GAAG,MAAM,iBAAiB,MAAM,WAAW,GAAG,qCAAsB,OAAO,UAAU;AAAA,EAC3F,EAAE,IAAI,IAAI,MAAM,mBAAmB,MAAM,WAAW,GAAG,uCAAwB,OAAO,UAAU;AAAA,EAChG,EAAE,IAAI,IAAI,MAAM,gBAAgB,MAAM,WAAW,GAAG,oCAAqB,OAAO,UAAU;AAAA,EAC1F,EAAE,IAAI,IAAI,MAAM,yBAAyB,MAAM,WAAW,GAAG,6CAA8B,OAAO,UAAU;AAAA,EAC5G,EAAE,IAAI,IAAI,MAAM,uBAAuB,MAAM,WAAW,GAAG,iDAA2B,OAAO,UAAU;AAAA,EACvG,EAAE,IAAI,IAAI,MAAM,sBAAsB,MAAM,WAAW,GAAG,yCAA0B,OAAO,UAAU;AAAA,EACrG,EAAE,IAAI,IAAI,MAAM,kBAAkB,MAAM,WAAW,GAAG,qCAAsB,OAAO,UAAU;AAAA,EAC7F,EAAE,IAAI,IAAI,MAAM,wBAAwB,MAAM,WAAW,GAAG,2CAA4B,OAAO,UAAU;AAAA,EACzG,EAAE,IAAI,IAAI,MAAM,aAAa,MAAM,WAAW,GAAG,kCAAkB,OAAO,UAAU;AAAA,EACpF,EAAE,IAAI,IAAI,MAAM,QAAQ,MAAM,WAAW,GAAG,UAAU,OAAO,UAAU;AAAA,EACvE,EAAE,IAAI,IAAI,MAAM,qBAAqB,MAAM,WAAW,GAAG,wCAAyB,OAAO,UAAU;AAAA,EACnG,EAAE,IAAI,IAAI,MAAM,SAAS,MAAM,WAAW,GAAG,OAAO,OAAO,UAAU;AAAA,EACrE,EAAE,IAAI,IAAI,MAAM,oBAAoB,MAAM,WAAW,GAAG,uCAAwB,OAAO,UAAU;AAAA,EACjG,EAAE,IAAI,IAAI,MAAM,gBAAgB,MAAM,WAAW,GAAG,wCAAyB,OAAO,UAAU;AAAA,EAC9F,EAAE,IAAI,IAAI,MAAM,eAAe,MAAM,WAAW,GAAG,kCAAoB,OAAO,UAAU;AAAA,EACxF,EAAE,IAAI,IAAI,MAAM,yBAAyB,MAAM,WAAW,GAAG,wCAA0B,OAAO,UAAU;AAC1G,CAAC;AA/KI,IAAM,WAAN;AAyMA,MAAM,kBAAN,MAAM,wBAAuB,wBAAwB;AAAA,EAM1D,YAAY,MAAuC;AACjD,UAAM;AACN,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAQA,OAAO,WAAW,OAAmB,SAAsD;AACzF,WAAO,IAAI,gBAAe,EAAE,WAAW,OAAO,OAAO;AAAA,EACvD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAAoD;AACxF,WAAO,IAAI,gBAAe,EAAE,SAAS,WAAW,OAAO;AAAA,EACzD;AAAA,EAEA,OAAO,eAAe,YAAoB,SAAoD;AAC5F,WAAO,IAAI,gBAAe,EAAE,eAAe,YAAY,OAAO;AAAA,EAChE;AAAA,EAEA,OAAO,OAAO,GAA8D,GAAuE;AACjJ,WAAO,uBAAO,KAAK,OAAO,iBAAgB,GAAG,CAAC;AAAA,EAChD;AACF;AAhCa,gBAWK,UAAyB;AAX9B,gBAYK,WAAW;AAZhB,gBAaK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,SAAS,MAAM,UAAU,GAAG,GAAyB,KAAK,KAAK;AAChF,CAAC;AAfI,IAAM,iBAAN;AAqCA,MAAM,mBAAN,MAAM,yBAAwB,wBAAyB;AAAA,EAQ5D,YAAY,MAAwC;AAClD,UAAM;AACN,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAQA,OAAO,WAAW,OAAmB,SAAuD;AAC1F,WAAO,IAAI,iBAAgB,EAAE,WAAW,OAAO,OAAO;AAAA,EACxD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAAqD;AACzF,WAAO,IAAI,iBAAgB,EAAE,SAAS,WAAW,OAAO;AAAA,EAC1D;AAAA,EAEA,OAAO,eAAe,YAAoB,SAAqD;AAC7F,WAAO,IAAI,iBAAgB,EAAE,eAAe,YAAY,OAAO;AAAA,EACjE;AAAA,EAEA,OAAO,OAAO,GAAgE,GAAyE;AACrJ,WAAO,uBAAO,KAAK,OAAO,kBAAiB,GAAG,CAAC;AAAA,EACjD;AACF;AAlCa,iBAaK,UAAyB;AAb9B,iBAcK,WAAW;AAdhB,iBAeK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,YAAY,MAAM,UAAU,GAAG,GAA2B,KAAK,KAAK;AACrF,CAAC;AAjBI,IAAM,kBAAN;AAuCA,MAAM,mBAAN,MAAM,yBAAwB,wBAAyB;AAAA,EAM5D,YAAY,MAAwC;AAClD,UAAM;AACN,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAQA,OAAO,WAAW,OAAmB,SAAuD;AAC1F,WAAO,IAAI,iBAAgB,EAAE,WAAW,OAAO,OAAO;AAAA,EACxD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAAqD;AACzF,WAAO,IAAI,iBAAgB,EAAE,SAAS,WAAW,OAAO;AAAA,EAC1D;AAAA,EAEA,OAAO,eAAe,YAAoB,SAAqD;AAC7F,WAAO,IAAI,iBAAgB,EAAE,eAAe,YAAY,OAAO;AAAA,EACjE;AAAA,EAEA,OAAO,OAAO,GAAgE,GAAyE;AACrJ,WAAO,uBAAO,KAAK,OAAO,kBAAiB,GAAG,CAAC;AAAA,EACjD;AACF;AAhCa,iBAWK,UAAyB;AAX9B,iBAYK,WAAW;AAZhB,iBAaK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,YAAY,MAAM,UAAU,GAAG,GAA2B,KAAK,KAAK;AACrF,CAAC;AAfI,IAAM,kBAAN;AAqCA,MAAM,aAAN,MAAM,mBAAkB,wBAAmB;AAAA,EAiChD,YAAY,MAAkC;AAC5C,UAAM;AACN,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAaA,OAAO,WAAW,OAAmB,SAAiD;AACpF,WAAO,IAAI,WAAU,EAAE,WAAW,OAAO,OAAO;AAAA,EAClD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAA+C;AACnF,WAAO,IAAI,WAAU,EAAE,SAAS,WAAW,OAAO;AAAA,EACpD;AAAA,EAEA,OAAO,eAAe,YAAoB,SAA+C;AACvF,WAAO,IAAI,WAAU,EAAE,eAAe,YAAY,OAAO;AAAA,EAC3D;AAAA,EAEA,OAAO,OAAO,GAAoD,GAA6D;AAC7H,WAAO,uBAAO,KAAK,OAAO,YAAW,GAAG,CAAC;AAAA,EAC3C;AACF;AAhEa,WAsCK,UAAyB;AAtC9B,WAuCK,WAAW;AAvChB,WAwCK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,SAAS,MAAM,QAAQ,GAAG,uBAAO,YAAY,QAAQ,GAAG,KAAK,KAAK;AAAA,EACjF,EAAE,IAAI,GAAG,MAAM,UAAU,MAAM,UAAU,GAAG,GAA2B,KAAK,KAAK;AAAA,EACjF,EAAE,IAAI,GAAG,MAAM,eAAe,MAAM,UAAU,GAAG,GAA2B,KAAK,KAAK;AAAA,EACtF,EAAE,IAAI,GAAG,MAAM,QAAQ,MAAM,UAAU,GAAG,GAA2B,KAAK,KAAK;AAAA,EAC/E,EAAE,IAAI,GAAG,MAAM,QAAQ,MAAM,UAAU,GAAG,IAA4B,KAAK,KAAK;AAAA,EAChF,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,UAAU,GAAG,GAA2B,KAAK,KAAK;AACpF,CAAC;AA/CI,IAAM,YAAN;AAqEA,MAAM,YAAN,MAAM,kBAAiB,wBAAkB;AAAA,EAM9C,YAAY,MAAiC;AAC3C,UAAM;AAHR;AAAA;AAAA;AAAA,mBAAuB,CAAC;AAItB,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAQA,OAAO,WAAW,OAAmB,SAAgD;AACnF,WAAO,IAAI,UAAS,EAAE,WAAW,OAAO,OAAO;AAAA,EACjD;AAAA,EAEA,OAAO,SAAS,WAAsB,SAA8C;AAClF,WAAO,IAAI,UAAS,EAAE,SAAS,WAAW,OAAO;AAAA,EACnD;AAAA,EAEA,OAAO,eAAe,YAAoB,SAA8C;AACtF,WAAO,IAAI,UAAS,EAAE,eAAe,YAAY,OAAO;AAAA,EAC1D;AAAA,EAEA,OAAO,OAAO,GAAkD,GAA2D;AACzH,WAAO,uBAAO,KAAK,OAAO,WAAU,GAAG,CAAC;AAAA,EAC1C;AACF;AAhCa,UAWK,UAAyB;AAX9B,UAYK,WAAW;AAZhB,UAaK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,WAAW,GAAG,WAAW,UAAU,KAAK;AAC1E,CAAC;AAfI,IAAM,WAAN;AAqCA,MAAM,SAAN,MAAM,eAAc,wBAAe;AAAA,EAMxC,YAAY,MAA8B;AACxC,UAAM;AACN,2BAAO,KAAK,YAAY,MAAM,IAAI;AAAA,EACpC;AAAA,EAQA,OAAO,WAAW,OAAmB,SAA6C;AAChF,WAAO,IAAI,OAAM,EAAE,WAAW,OAAO,OAAO;AAAA,EAC9C;AAAA,EAEA,OAAO,SAAS,WAAsB,SAA2C;AAC/E,WAAO,IAAI,OAAM,EAAE,SAAS,WAAW,OAAO;AAAA,EAChD;AAAA,EAEA,OAAO,eAAe,YAAoB,SAA2C;AACnF,WAAO,IAAI,OAAM,EAAE,eAAe,YAAY,OAAO;AAAA,EACvD;AAAA,EAEA,OAAO,OAAO,GAA4C,GAAqD;AAC7G,WAAO,uBAAO,KAAK,OAAO,QAAO,GAAG,CAAC;AAAA,EACvC;AACF;AAhCa,OAWK,UAAyB;AAX9B,OAYK,WAAW;AAZhB,OAaK,SAAoB,uBAAO,KAAK,aAAa,MAAM;AAAA,EACjE,EAAE,IAAI,GAAG,MAAM,WAAW,MAAM,UAAU,GAAG,GAA2B,KAAK,KAAK;AACpF,CAAC;AAfI,IAAM,QAAN;","names":["LogLevel"]}
1
+ {"version":3,"sources":["../../src/proto/ffi_pb.ts"],"sourcesContent":["// Copyright 2023 LiveKit, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file ffi.proto (package livekit.proto, syntax proto2)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto2 } from \"@bufbuild/protobuf\";\nimport { ConnectCallback, ConnectRequest, ConnectResponse, DisconnectCallback, DisconnectRequest, DisconnectResponse, EditChatMessageRequest, GetSessionStatsCallback, GetSessionStatsRequest, GetSessionStatsResponse, PublishDataCallback, PublishDataRequest, PublishDataResponse, PublishSipDtmfCallback, PublishSipDtmfRequest, PublishSipDtmfResponse, PublishTrackCallback, PublishTrackRequest, PublishTrackResponse, PublishTranscriptionCallback, PublishTranscriptionRequest, PublishTranscriptionResponse, RoomEvent, SendChatMessageCallback, SendChatMessageRequest, SendChatMessageResponse, SendStreamChunkCallback, SendStreamChunkRequest, SendStreamChunkResponse, SendStreamHeaderCallback, SendStreamHeaderRequest, SendStreamHeaderResponse, SendStreamTrailerCallback, SendStreamTrailerRequest, SendStreamTrailerResponse, SetDataChannelBufferedAmountLowThresholdRequest, SetDataChannelBufferedAmountLowThresholdResponse, SetLocalAttributesCallback, SetLocalAttributesRequest, SetLocalAttributesResponse, SetLocalMetadataCallback, SetLocalMetadataRequest, SetLocalMetadataResponse, SetLocalNameCallback, SetLocalNameRequest, SetLocalNameResponse, SetSubscribedRequest, SetSubscribedResponse, UnpublishTrackCallback, UnpublishTrackRequest, UnpublishTrackResponse } from \"./room_pb.js\";\nimport { CreateAudioTrackRequest, CreateAudioTrackResponse, CreateVideoTrackRequest, CreateVideoTrackResponse, EnableRemoteTrackRequest, EnableRemoteTrackResponse, GetStatsCallback, GetStatsRequest, GetStatsResponse, LocalTrackMuteRequest, LocalTrackMuteResponse, TrackEvent } from \"./track_pb.js\";\nimport { CaptureVideoFrameRequest, CaptureVideoFrameResponse, NewVideoSourceRequest, NewVideoSourceResponse, NewVideoStreamRequest, NewVideoStreamResponse, VideoConvertRequest, VideoConvertResponse, VideoStreamEvent, VideoStreamFromParticipantRequest, VideoStreamFromParticipantResponse } from \"./video_frame_pb.js\";\nimport { AudioStreamEvent, AudioStreamFromParticipantRequest, AudioStreamFromParticipantResponse, CaptureAudioFrameCallback, CaptureAudioFrameRequest, CaptureAudioFrameResponse, ClearAudioBufferRequest, ClearAudioBufferResponse, FlushSoxResamplerRequest, FlushSoxResamplerResponse, NewAudioResamplerRequest, NewAudioResamplerResponse, NewAudioSourceRequest, NewAudioSourceResponse, NewAudioStreamRequest, NewAudioStreamResponse, NewSoxResamplerRequest, NewSoxResamplerResponse, PushSoxResamplerRequest, PushSoxResamplerResponse, RemixAndResampleRequest, RemixAndResampleResponse } from \"./audio_frame_pb.js\";\nimport { E2eeRequest, E2eeResponse } from \"./e2ee_pb.js\";\nimport { PerformRpcCallback, PerformRpcRequest, PerformRpcResponse, RegisterRpcMethodRequest, RegisterRpcMethodResponse, RpcMethodInvocationEvent, RpcMethodInvocationResponseRequest, RpcMethodInvocationResponseResponse, UnregisterRpcMethodRequest, UnregisterRpcMethodResponse } from \"./rpc_pb.js\";\nimport { EnableRemoteTrackPublicationRequest, EnableRemoteTrackPublicationResponse, UpdateRemoteTrackPublicationDimensionRequest, UpdateRemoteTrackPublicationDimensionResponse } from \"./track_publication_pb.js\";\n\n/**\n * @generated from enum livekit.proto.LogLevel\n */\nexport enum LogLevel {\n /**\n * @generated from enum value: LOG_ERROR = 0;\n */\n LOG_ERROR = 0,\n\n /**\n * @generated from enum value: LOG_WARN = 1;\n */\n LOG_WARN = 1,\n\n /**\n * @generated from enum value: LOG_INFO = 2;\n */\n LOG_INFO = 2,\n\n /**\n * @generated from enum value: LOG_DEBUG = 3;\n */\n LOG_DEBUG = 3,\n\n /**\n * @generated from enum value: LOG_TRACE = 4;\n */\n LOG_TRACE = 4,\n}\n// Retrieve enum metadata with: proto2.getEnumType(LogLevel)\nproto2.util.setEnumType(LogLevel, \"livekit.proto.LogLevel\", [\n { no: 0, name: \"LOG_ERROR\" },\n { no: 1, name: \"LOG_WARN\" },\n { no: 2, name: \"LOG_INFO\" },\n { no: 3, name: \"LOG_DEBUG\" },\n { no: 4, name: \"LOG_TRACE\" },\n]);\n\n/**\n * This is the input of livekit_ffi_request function\n * We always expect a response (FFIResponse, even if it's empty)\n *\n * @generated from message livekit.proto.FfiRequest\n */\nexport class FfiRequest extends Message<FfiRequest> {\n /**\n * @generated from oneof livekit.proto.FfiRequest.message\n */\n message: {\n /**\n * @generated from field: livekit.proto.DisposeRequest dispose = 2;\n */\n value: DisposeRequest;\n case: \"dispose\";\n } | {\n /**\n * Room\n *\n * @generated from field: livekit.proto.ConnectRequest connect = 3;\n */\n value: ConnectRequest;\n case: \"connect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisconnectRequest disconnect = 4;\n */\n value: DisconnectRequest;\n case: \"disconnect\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTrackRequest publish_track = 5;\n */\n value: PublishTrackRequest;\n case: \"publishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.UnpublishTrackRequest unpublish_track = 6;\n */\n value: UnpublishTrackRequest;\n case: \"unpublishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishDataRequest publish_data = 7;\n */\n value: PublishDataRequest;\n case: \"publishData\";\n } | {\n /**\n * @generated from field: livekit.proto.SetSubscribedRequest set_subscribed = 8;\n */\n value: SetSubscribedRequest;\n case: \"setSubscribed\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalMetadataRequest set_local_metadata = 9;\n */\n value: SetLocalMetadataRequest;\n case: \"setLocalMetadata\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalNameRequest set_local_name = 10;\n */\n value: SetLocalNameRequest;\n case: \"setLocalName\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalAttributesRequest set_local_attributes = 11;\n */\n value: SetLocalAttributesRequest;\n case: \"setLocalAttributes\";\n } | {\n /**\n * @generated from field: livekit.proto.GetSessionStatsRequest get_session_stats = 12;\n */\n value: GetSessionStatsRequest;\n case: \"getSessionStats\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTranscriptionRequest publish_transcription = 13;\n */\n value: PublishTranscriptionRequest;\n case: \"publishTranscription\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishSipDtmfRequest publish_sip_dtmf = 14;\n */\n value: PublishSipDtmfRequest;\n case: \"publishSipDtmf\";\n } | {\n /**\n * Track\n *\n * @generated from field: livekit.proto.CreateVideoTrackRequest create_video_track = 15;\n */\n value: CreateVideoTrackRequest;\n case: \"createVideoTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.CreateAudioTrackRequest create_audio_track = 16;\n */\n value: CreateAudioTrackRequest;\n case: \"createAudioTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.LocalTrackMuteRequest local_track_mute = 17;\n */\n value: LocalTrackMuteRequest;\n case: \"localTrackMute\";\n } | {\n /**\n * @generated from field: livekit.proto.EnableRemoteTrackRequest enable_remote_track = 18;\n */\n value: EnableRemoteTrackRequest;\n case: \"enableRemoteTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.GetStatsRequest get_stats = 19;\n */\n value: GetStatsRequest;\n case: \"getStats\";\n } | {\n /**\n * Video\n *\n * @generated from field: livekit.proto.NewVideoStreamRequest new_video_stream = 20;\n */\n value: NewVideoStreamRequest;\n case: \"newVideoStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewVideoSourceRequest new_video_source = 21;\n */\n value: NewVideoSourceRequest;\n case: \"newVideoSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureVideoFrameRequest capture_video_frame = 22;\n */\n value: CaptureVideoFrameRequest;\n case: \"captureVideoFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoConvertRequest video_convert = 23;\n */\n value: VideoConvertRequest;\n case: \"videoConvert\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoStreamFromParticipantRequest video_stream_from_participant = 24;\n */\n value: VideoStreamFromParticipantRequest;\n case: \"videoStreamFromParticipant\";\n } | {\n /**\n * Audio\n *\n * @generated from field: livekit.proto.NewAudioStreamRequest new_audio_stream = 25;\n */\n value: NewAudioStreamRequest;\n case: \"newAudioStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioSourceRequest new_audio_source = 26;\n */\n value: NewAudioSourceRequest;\n case: \"newAudioSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureAudioFrameRequest capture_audio_frame = 27;\n */\n value: CaptureAudioFrameRequest;\n case: \"captureAudioFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.ClearAudioBufferRequest clear_audio_buffer = 28;\n */\n value: ClearAudioBufferRequest;\n case: \"clearAudioBuffer\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioResamplerRequest new_audio_resampler = 29;\n */\n value: NewAudioResamplerRequest;\n case: \"newAudioResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.RemixAndResampleRequest remix_and_resample = 30;\n */\n value: RemixAndResampleRequest;\n case: \"remixAndResample\";\n } | {\n /**\n * @generated from field: livekit.proto.E2eeRequest e2ee = 31;\n */\n value: E2eeRequest;\n case: \"e2ee\";\n } | {\n /**\n * @generated from field: livekit.proto.AudioStreamFromParticipantRequest audio_stream_from_participant = 32;\n */\n value: AudioStreamFromParticipantRequest;\n case: \"audioStreamFromParticipant\";\n } | {\n /**\n * @generated from field: livekit.proto.NewSoxResamplerRequest new_sox_resampler = 33;\n */\n value: NewSoxResamplerRequest;\n case: \"newSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.PushSoxResamplerRequest push_sox_resampler = 34;\n */\n value: PushSoxResamplerRequest;\n case: \"pushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.FlushSoxResamplerRequest flush_sox_resampler = 35;\n */\n value: FlushSoxResamplerRequest;\n case: \"flushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.SendChatMessageRequest send_chat_message = 36;\n */\n value: SendChatMessageRequest;\n case: \"sendChatMessage\";\n } | {\n /**\n * @generated from field: livekit.proto.EditChatMessageRequest edit_chat_message = 37;\n */\n value: EditChatMessageRequest;\n case: \"editChatMessage\";\n } | {\n /**\n * RPC\n *\n * @generated from field: livekit.proto.PerformRpcRequest perform_rpc = 38;\n */\n value: PerformRpcRequest;\n case: \"performRpc\";\n } | {\n /**\n * @generated from field: livekit.proto.RegisterRpcMethodRequest register_rpc_method = 39;\n */\n value: RegisterRpcMethodRequest;\n case: \"registerRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.UnregisterRpcMethodRequest unregister_rpc_method = 40;\n */\n value: UnregisterRpcMethodRequest;\n case: \"unregisterRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.RpcMethodInvocationResponseRequest rpc_method_invocation_response = 41;\n */\n value: RpcMethodInvocationResponseRequest;\n case: \"rpcMethodInvocationResponse\";\n } | {\n /**\n * Track Publication\n *\n * @generated from field: livekit.proto.EnableRemoteTrackPublicationRequest enable_remote_track_publication = 42;\n */\n value: EnableRemoteTrackPublicationRequest;\n case: \"enableRemoteTrackPublication\";\n } | {\n /**\n * @generated from field: livekit.proto.UpdateRemoteTrackPublicationDimensionRequest update_remote_track_publication_dimension = 43;\n */\n value: UpdateRemoteTrackPublicationDimensionRequest;\n case: \"updateRemoteTrackPublicationDimension\";\n } | {\n /**\n * Data Streams\n *\n * @generated from field: livekit.proto.SendStreamHeaderRequest send_stream_header = 44;\n */\n value: SendStreamHeaderRequest;\n case: \"sendStreamHeader\";\n } | {\n /**\n * @generated from field: livekit.proto.SendStreamChunkRequest send_stream_chunk = 45;\n */\n value: SendStreamChunkRequest;\n case: \"sendStreamChunk\";\n } | {\n /**\n * @generated from field: livekit.proto.SendStreamTrailerRequest send_stream_trailer = 46;\n */\n value: SendStreamTrailerRequest;\n case: \"sendStreamTrailer\";\n } | {\n /**\n * Data Channel\n *\n * @generated from field: livekit.proto.SetDataChannelBufferedAmountLowThresholdRequest set_data_channel_buffered_amount_low_threshold = 47;\n */\n value: SetDataChannelBufferedAmountLowThresholdRequest;\n case: \"setDataChannelBufferedAmountLowThreshold\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage<FfiRequest>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.FfiRequest\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 2, name: \"dispose\", kind: \"message\", T: DisposeRequest, oneof: \"message\" },\n { no: 3, name: \"connect\", kind: \"message\", T: ConnectRequest, oneof: \"message\" },\n { no: 4, name: \"disconnect\", kind: \"message\", T: DisconnectRequest, oneof: \"message\" },\n { no: 5, name: \"publish_track\", kind: \"message\", T: PublishTrackRequest, oneof: \"message\" },\n { no: 6, name: \"unpublish_track\", kind: \"message\", T: UnpublishTrackRequest, oneof: \"message\" },\n { no: 7, name: \"publish_data\", kind: \"message\", T: PublishDataRequest, oneof: \"message\" },\n { no: 8, name: \"set_subscribed\", kind: \"message\", T: SetSubscribedRequest, oneof: \"message\" },\n { no: 9, name: \"set_local_metadata\", kind: \"message\", T: SetLocalMetadataRequest, oneof: \"message\" },\n { no: 10, name: \"set_local_name\", kind: \"message\", T: SetLocalNameRequest, oneof: \"message\" },\n { no: 11, name: \"set_local_attributes\", kind: \"message\", T: SetLocalAttributesRequest, oneof: \"message\" },\n { no: 12, name: \"get_session_stats\", kind: \"message\", T: GetSessionStatsRequest, oneof: \"message\" },\n { no: 13, name: \"publish_transcription\", kind: \"message\", T: PublishTranscriptionRequest, oneof: \"message\" },\n { no: 14, name: \"publish_sip_dtmf\", kind: \"message\", T: PublishSipDtmfRequest, oneof: \"message\" },\n { no: 15, name: \"create_video_track\", kind: \"message\", T: CreateVideoTrackRequest, oneof: \"message\" },\n { no: 16, name: \"create_audio_track\", kind: \"message\", T: CreateAudioTrackRequest, oneof: \"message\" },\n { no: 17, name: \"local_track_mute\", kind: \"message\", T: LocalTrackMuteRequest, oneof: \"message\" },\n { no: 18, name: \"enable_remote_track\", kind: \"message\", T: EnableRemoteTrackRequest, oneof: \"message\" },\n { no: 19, name: \"get_stats\", kind: \"message\", T: GetStatsRequest, oneof: \"message\" },\n { no: 20, name: \"new_video_stream\", kind: \"message\", T: NewVideoStreamRequest, oneof: \"message\" },\n { no: 21, name: \"new_video_source\", kind: \"message\", T: NewVideoSourceRequest, oneof: \"message\" },\n { no: 22, name: \"capture_video_frame\", kind: \"message\", T: CaptureVideoFrameRequest, oneof: \"message\" },\n { no: 23, name: \"video_convert\", kind: \"message\", T: VideoConvertRequest, oneof: \"message\" },\n { no: 24, name: \"video_stream_from_participant\", kind: \"message\", T: VideoStreamFromParticipantRequest, oneof: \"message\" },\n { no: 25, name: \"new_audio_stream\", kind: \"message\", T: NewAudioStreamRequest, oneof: \"message\" },\n { no: 26, name: \"new_audio_source\", kind: \"message\", T: NewAudioSourceRequest, oneof: \"message\" },\n { no: 27, name: \"capture_audio_frame\", kind: \"message\", T: CaptureAudioFrameRequest, oneof: \"message\" },\n { no: 28, name: \"clear_audio_buffer\", kind: \"message\", T: ClearAudioBufferRequest, oneof: \"message\" },\n { no: 29, name: \"new_audio_resampler\", kind: \"message\", T: NewAudioResamplerRequest, oneof: \"message\" },\n { no: 30, name: \"remix_and_resample\", kind: \"message\", T: RemixAndResampleRequest, oneof: \"message\" },\n { no: 31, name: \"e2ee\", kind: \"message\", T: E2eeRequest, oneof: \"message\" },\n { no: 32, name: \"audio_stream_from_participant\", kind: \"message\", T: AudioStreamFromParticipantRequest, oneof: \"message\" },\n { no: 33, name: \"new_sox_resampler\", kind: \"message\", T: NewSoxResamplerRequest, oneof: \"message\" },\n { no: 34, name: \"push_sox_resampler\", kind: \"message\", T: PushSoxResamplerRequest, oneof: \"message\" },\n { no: 35, name: \"flush_sox_resampler\", kind: \"message\", T: FlushSoxResamplerRequest, oneof: \"message\" },\n { no: 36, name: \"send_chat_message\", kind: \"message\", T: SendChatMessageRequest, oneof: \"message\" },\n { no: 37, name: \"edit_chat_message\", kind: \"message\", T: EditChatMessageRequest, oneof: \"message\" },\n { no: 38, name: \"perform_rpc\", kind: \"message\", T: PerformRpcRequest, oneof: \"message\" },\n { no: 39, name: \"register_rpc_method\", kind: \"message\", T: RegisterRpcMethodRequest, oneof: \"message\" },\n { no: 40, name: \"unregister_rpc_method\", kind: \"message\", T: UnregisterRpcMethodRequest, oneof: \"message\" },\n { no: 41, name: \"rpc_method_invocation_response\", kind: \"message\", T: RpcMethodInvocationResponseRequest, oneof: \"message\" },\n { no: 42, name: \"enable_remote_track_publication\", kind: \"message\", T: EnableRemoteTrackPublicationRequest, oneof: \"message\" },\n { no: 43, name: \"update_remote_track_publication_dimension\", kind: \"message\", T: UpdateRemoteTrackPublicationDimensionRequest, oneof: \"message\" },\n { no: 44, name: \"send_stream_header\", kind: \"message\", T: SendStreamHeaderRequest, oneof: \"message\" },\n { no: 45, name: \"send_stream_chunk\", kind: \"message\", T: SendStreamChunkRequest, oneof: \"message\" },\n { no: 46, name: \"send_stream_trailer\", kind: \"message\", T: SendStreamTrailerRequest, oneof: \"message\" },\n { no: 47, name: \"set_data_channel_buffered_amount_low_threshold\", kind: \"message\", T: SetDataChannelBufferedAmountLowThresholdRequest, oneof: \"message\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiRequest {\n return new FfiRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): FfiRequest {\n return new FfiRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): FfiRequest {\n return new FfiRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: FfiRequest | PlainMessage<FfiRequest> | undefined, b: FfiRequest | PlainMessage<FfiRequest> | undefined): boolean {\n return proto2.util.equals(FfiRequest, a, b);\n }\n}\n\n/**\n * This is the output of livekit_ffi_request function.\n *\n * @generated from message livekit.proto.FfiResponse\n */\nexport class FfiResponse extends Message<FfiResponse> {\n /**\n * @generated from oneof livekit.proto.FfiResponse.message\n */\n message: {\n /**\n * @generated from field: livekit.proto.DisposeResponse dispose = 2;\n */\n value: DisposeResponse;\n case: \"dispose\";\n } | {\n /**\n * Room\n *\n * @generated from field: livekit.proto.ConnectResponse connect = 3;\n */\n value: ConnectResponse;\n case: \"connect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisconnectResponse disconnect = 4;\n */\n value: DisconnectResponse;\n case: \"disconnect\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTrackResponse publish_track = 5;\n */\n value: PublishTrackResponse;\n case: \"publishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.UnpublishTrackResponse unpublish_track = 6;\n */\n value: UnpublishTrackResponse;\n case: \"unpublishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishDataResponse publish_data = 7;\n */\n value: PublishDataResponse;\n case: \"publishData\";\n } | {\n /**\n * @generated from field: livekit.proto.SetSubscribedResponse set_subscribed = 8;\n */\n value: SetSubscribedResponse;\n case: \"setSubscribed\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalMetadataResponse set_local_metadata = 9;\n */\n value: SetLocalMetadataResponse;\n case: \"setLocalMetadata\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalNameResponse set_local_name = 10;\n */\n value: SetLocalNameResponse;\n case: \"setLocalName\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalAttributesResponse set_local_attributes = 11;\n */\n value: SetLocalAttributesResponse;\n case: \"setLocalAttributes\";\n } | {\n /**\n * @generated from field: livekit.proto.GetSessionStatsResponse get_session_stats = 12;\n */\n value: GetSessionStatsResponse;\n case: \"getSessionStats\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTranscriptionResponse publish_transcription = 13;\n */\n value: PublishTranscriptionResponse;\n case: \"publishTranscription\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishSipDtmfResponse publish_sip_dtmf = 14;\n */\n value: PublishSipDtmfResponse;\n case: \"publishSipDtmf\";\n } | {\n /**\n * Track\n *\n * @generated from field: livekit.proto.CreateVideoTrackResponse create_video_track = 15;\n */\n value: CreateVideoTrackResponse;\n case: \"createVideoTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.CreateAudioTrackResponse create_audio_track = 16;\n */\n value: CreateAudioTrackResponse;\n case: \"createAudioTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.LocalTrackMuteResponse local_track_mute = 17;\n */\n value: LocalTrackMuteResponse;\n case: \"localTrackMute\";\n } | {\n /**\n * @generated from field: livekit.proto.EnableRemoteTrackResponse enable_remote_track = 18;\n */\n value: EnableRemoteTrackResponse;\n case: \"enableRemoteTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.GetStatsResponse get_stats = 19;\n */\n value: GetStatsResponse;\n case: \"getStats\";\n } | {\n /**\n * Video\n *\n * @generated from field: livekit.proto.NewVideoStreamResponse new_video_stream = 20;\n */\n value: NewVideoStreamResponse;\n case: \"newVideoStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewVideoSourceResponse new_video_source = 21;\n */\n value: NewVideoSourceResponse;\n case: \"newVideoSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureVideoFrameResponse capture_video_frame = 22;\n */\n value: CaptureVideoFrameResponse;\n case: \"captureVideoFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoConvertResponse video_convert = 23;\n */\n value: VideoConvertResponse;\n case: \"videoConvert\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoStreamFromParticipantResponse video_stream_from_participant = 24;\n */\n value: VideoStreamFromParticipantResponse;\n case: \"videoStreamFromParticipant\";\n } | {\n /**\n * Audio\n *\n * @generated from field: livekit.proto.NewAudioStreamResponse new_audio_stream = 25;\n */\n value: NewAudioStreamResponse;\n case: \"newAudioStream\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioSourceResponse new_audio_source = 26;\n */\n value: NewAudioSourceResponse;\n case: \"newAudioSource\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureAudioFrameResponse capture_audio_frame = 27;\n */\n value: CaptureAudioFrameResponse;\n case: \"captureAudioFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.ClearAudioBufferResponse clear_audio_buffer = 28;\n */\n value: ClearAudioBufferResponse;\n case: \"clearAudioBuffer\";\n } | {\n /**\n * @generated from field: livekit.proto.NewAudioResamplerResponse new_audio_resampler = 29;\n */\n value: NewAudioResamplerResponse;\n case: \"newAudioResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.RemixAndResampleResponse remix_and_resample = 30;\n */\n value: RemixAndResampleResponse;\n case: \"remixAndResample\";\n } | {\n /**\n * @generated from field: livekit.proto.AudioStreamFromParticipantResponse audio_stream_from_participant = 31;\n */\n value: AudioStreamFromParticipantResponse;\n case: \"audioStreamFromParticipant\";\n } | {\n /**\n * @generated from field: livekit.proto.E2eeResponse e2ee = 32;\n */\n value: E2eeResponse;\n case: \"e2ee\";\n } | {\n /**\n * @generated from field: livekit.proto.NewSoxResamplerResponse new_sox_resampler = 33;\n */\n value: NewSoxResamplerResponse;\n case: \"newSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.PushSoxResamplerResponse push_sox_resampler = 34;\n */\n value: PushSoxResamplerResponse;\n case: \"pushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.FlushSoxResamplerResponse flush_sox_resampler = 35;\n */\n value: FlushSoxResamplerResponse;\n case: \"flushSoxResampler\";\n } | {\n /**\n * @generated from field: livekit.proto.SendChatMessageResponse send_chat_message = 36;\n */\n value: SendChatMessageResponse;\n case: \"sendChatMessage\";\n } | {\n /**\n * RPC\n *\n * @generated from field: livekit.proto.PerformRpcResponse perform_rpc = 37;\n */\n value: PerformRpcResponse;\n case: \"performRpc\";\n } | {\n /**\n * @generated from field: livekit.proto.RegisterRpcMethodResponse register_rpc_method = 38;\n */\n value: RegisterRpcMethodResponse;\n case: \"registerRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.UnregisterRpcMethodResponse unregister_rpc_method = 39;\n */\n value: UnregisterRpcMethodResponse;\n case: \"unregisterRpcMethod\";\n } | {\n /**\n * @generated from field: livekit.proto.RpcMethodInvocationResponseResponse rpc_method_invocation_response = 40;\n */\n value: RpcMethodInvocationResponseResponse;\n case: \"rpcMethodInvocationResponse\";\n } | {\n /**\n * Track Publication\n *\n * @generated from field: livekit.proto.EnableRemoteTrackPublicationResponse enable_remote_track_publication = 41;\n */\n value: EnableRemoteTrackPublicationResponse;\n case: \"enableRemoteTrackPublication\";\n } | {\n /**\n * @generated from field: livekit.proto.UpdateRemoteTrackPublicationDimensionResponse update_remote_track_publication_dimension = 42;\n */\n value: UpdateRemoteTrackPublicationDimensionResponse;\n case: \"updateRemoteTrackPublicationDimension\";\n } | {\n /**\n * Data Streams\n *\n * @generated from field: livekit.proto.SendStreamHeaderResponse send_stream_header = 43;\n */\n value: SendStreamHeaderResponse;\n case: \"sendStreamHeader\";\n } | {\n /**\n * @generated from field: livekit.proto.SendStreamChunkResponse send_stream_chunk = 44;\n */\n value: SendStreamChunkResponse;\n case: \"sendStreamChunk\";\n } | {\n /**\n * @generated from field: livekit.proto.SendStreamTrailerResponse send_stream_trailer = 45;\n */\n value: SendStreamTrailerResponse;\n case: \"sendStreamTrailer\";\n } | {\n /**\n * Data Channel\n *\n * @generated from field: livekit.proto.SetDataChannelBufferedAmountLowThresholdResponse set_data_channel_buffered_amount_low_threshold = 46;\n */\n value: SetDataChannelBufferedAmountLowThresholdResponse;\n case: \"setDataChannelBufferedAmountLowThreshold\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage<FfiResponse>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.FfiResponse\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 2, name: \"dispose\", kind: \"message\", T: DisposeResponse, oneof: \"message\" },\n { no: 3, name: \"connect\", kind: \"message\", T: ConnectResponse, oneof: \"message\" },\n { no: 4, name: \"disconnect\", kind: \"message\", T: DisconnectResponse, oneof: \"message\" },\n { no: 5, name: \"publish_track\", kind: \"message\", T: PublishTrackResponse, oneof: \"message\" },\n { no: 6, name: \"unpublish_track\", kind: \"message\", T: UnpublishTrackResponse, oneof: \"message\" },\n { no: 7, name: \"publish_data\", kind: \"message\", T: PublishDataResponse, oneof: \"message\" },\n { no: 8, name: \"set_subscribed\", kind: \"message\", T: SetSubscribedResponse, oneof: \"message\" },\n { no: 9, name: \"set_local_metadata\", kind: \"message\", T: SetLocalMetadataResponse, oneof: \"message\" },\n { no: 10, name: \"set_local_name\", kind: \"message\", T: SetLocalNameResponse, oneof: \"message\" },\n { no: 11, name: \"set_local_attributes\", kind: \"message\", T: SetLocalAttributesResponse, oneof: \"message\" },\n { no: 12, name: \"get_session_stats\", kind: \"message\", T: GetSessionStatsResponse, oneof: \"message\" },\n { no: 13, name: \"publish_transcription\", kind: \"message\", T: PublishTranscriptionResponse, oneof: \"message\" },\n { no: 14, name: \"publish_sip_dtmf\", kind: \"message\", T: PublishSipDtmfResponse, oneof: \"message\" },\n { no: 15, name: \"create_video_track\", kind: \"message\", T: CreateVideoTrackResponse, oneof: \"message\" },\n { no: 16, name: \"create_audio_track\", kind: \"message\", T: CreateAudioTrackResponse, oneof: \"message\" },\n { no: 17, name: \"local_track_mute\", kind: \"message\", T: LocalTrackMuteResponse, oneof: \"message\" },\n { no: 18, name: \"enable_remote_track\", kind: \"message\", T: EnableRemoteTrackResponse, oneof: \"message\" },\n { no: 19, name: \"get_stats\", kind: \"message\", T: GetStatsResponse, oneof: \"message\" },\n { no: 20, name: \"new_video_stream\", kind: \"message\", T: NewVideoStreamResponse, oneof: \"message\" },\n { no: 21, name: \"new_video_source\", kind: \"message\", T: NewVideoSourceResponse, oneof: \"message\" },\n { no: 22, name: \"capture_video_frame\", kind: \"message\", T: CaptureVideoFrameResponse, oneof: \"message\" },\n { no: 23, name: \"video_convert\", kind: \"message\", T: VideoConvertResponse, oneof: \"message\" },\n { no: 24, name: \"video_stream_from_participant\", kind: \"message\", T: VideoStreamFromParticipantResponse, oneof: \"message\" },\n { no: 25, name: \"new_audio_stream\", kind: \"message\", T: NewAudioStreamResponse, oneof: \"message\" },\n { no: 26, name: \"new_audio_source\", kind: \"message\", T: NewAudioSourceResponse, oneof: \"message\" },\n { no: 27, name: \"capture_audio_frame\", kind: \"message\", T: CaptureAudioFrameResponse, oneof: \"message\" },\n { no: 28, name: \"clear_audio_buffer\", kind: \"message\", T: ClearAudioBufferResponse, oneof: \"message\" },\n { no: 29, name: \"new_audio_resampler\", kind: \"message\", T: NewAudioResamplerResponse, oneof: \"message\" },\n { no: 30, name: \"remix_and_resample\", kind: \"message\", T: RemixAndResampleResponse, oneof: \"message\" },\n { no: 31, name: \"audio_stream_from_participant\", kind: \"message\", T: AudioStreamFromParticipantResponse, oneof: \"message\" },\n { no: 32, name: \"e2ee\", kind: \"message\", T: E2eeResponse, oneof: \"message\" },\n { no: 33, name: \"new_sox_resampler\", kind: \"message\", T: NewSoxResamplerResponse, oneof: \"message\" },\n { no: 34, name: \"push_sox_resampler\", kind: \"message\", T: PushSoxResamplerResponse, oneof: \"message\" },\n { no: 35, name: \"flush_sox_resampler\", kind: \"message\", T: FlushSoxResamplerResponse, oneof: \"message\" },\n { no: 36, name: \"send_chat_message\", kind: \"message\", T: SendChatMessageResponse, oneof: \"message\" },\n { no: 37, name: \"perform_rpc\", kind: \"message\", T: PerformRpcResponse, oneof: \"message\" },\n { no: 38, name: \"register_rpc_method\", kind: \"message\", T: RegisterRpcMethodResponse, oneof: \"message\" },\n { no: 39, name: \"unregister_rpc_method\", kind: \"message\", T: UnregisterRpcMethodResponse, oneof: \"message\" },\n { no: 40, name: \"rpc_method_invocation_response\", kind: \"message\", T: RpcMethodInvocationResponseResponse, oneof: \"message\" },\n { no: 41, name: \"enable_remote_track_publication\", kind: \"message\", T: EnableRemoteTrackPublicationResponse, oneof: \"message\" },\n { no: 42, name: \"update_remote_track_publication_dimension\", kind: \"message\", T: UpdateRemoteTrackPublicationDimensionResponse, oneof: \"message\" },\n { no: 43, name: \"send_stream_header\", kind: \"message\", T: SendStreamHeaderResponse, oneof: \"message\" },\n { no: 44, name: \"send_stream_chunk\", kind: \"message\", T: SendStreamChunkResponse, oneof: \"message\" },\n { no: 45, name: \"send_stream_trailer\", kind: \"message\", T: SendStreamTrailerResponse, oneof: \"message\" },\n { no: 46, name: \"set_data_channel_buffered_amount_low_threshold\", kind: \"message\", T: SetDataChannelBufferedAmountLowThresholdResponse, oneof: \"message\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiResponse {\n return new FfiResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): FfiResponse {\n return new FfiResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): FfiResponse {\n return new FfiResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: FfiResponse | PlainMessage<FfiResponse> | undefined, b: FfiResponse | PlainMessage<FfiResponse> | undefined): boolean {\n return proto2.util.equals(FfiResponse, a, b);\n }\n}\n\n/**\n * To minimize complexity, participant events are not included in the protocol.\n * It is easily deducible from the room events and it turned out that is is easier to implement\n * on the ffi client side.\n *\n * @generated from message livekit.proto.FfiEvent\n */\nexport class FfiEvent extends Message<FfiEvent> {\n /**\n * @generated from oneof livekit.proto.FfiEvent.message\n */\n message: {\n /**\n * @generated from field: livekit.proto.RoomEvent room_event = 1;\n */\n value: RoomEvent;\n case: \"roomEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.TrackEvent track_event = 2;\n */\n value: TrackEvent;\n case: \"trackEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.VideoStreamEvent video_stream_event = 3;\n */\n value: VideoStreamEvent;\n case: \"videoStreamEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.AudioStreamEvent audio_stream_event = 4;\n */\n value: AudioStreamEvent;\n case: \"audioStreamEvent\";\n } | {\n /**\n * @generated from field: livekit.proto.ConnectCallback connect = 5;\n */\n value: ConnectCallback;\n case: \"connect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisconnectCallback disconnect = 7;\n */\n value: DisconnectCallback;\n case: \"disconnect\";\n } | {\n /**\n * @generated from field: livekit.proto.DisposeCallback dispose = 8;\n */\n value: DisposeCallback;\n case: \"dispose\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTrackCallback publish_track = 9;\n */\n value: PublishTrackCallback;\n case: \"publishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.UnpublishTrackCallback unpublish_track = 10;\n */\n value: UnpublishTrackCallback;\n case: \"unpublishTrack\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishDataCallback publish_data = 11;\n */\n value: PublishDataCallback;\n case: \"publishData\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishTranscriptionCallback publish_transcription = 12;\n */\n value: PublishTranscriptionCallback;\n case: \"publishTranscription\";\n } | {\n /**\n * @generated from field: livekit.proto.CaptureAudioFrameCallback capture_audio_frame = 13;\n */\n value: CaptureAudioFrameCallback;\n case: \"captureAudioFrame\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalMetadataCallback set_local_metadata = 14;\n */\n value: SetLocalMetadataCallback;\n case: \"setLocalMetadata\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalNameCallback set_local_name = 15;\n */\n value: SetLocalNameCallback;\n case: \"setLocalName\";\n } | {\n /**\n * @generated from field: livekit.proto.SetLocalAttributesCallback set_local_attributes = 16;\n */\n value: SetLocalAttributesCallback;\n case: \"setLocalAttributes\";\n } | {\n /**\n * @generated from field: livekit.proto.GetStatsCallback get_stats = 17;\n */\n value: GetStatsCallback;\n case: \"getStats\";\n } | {\n /**\n * @generated from field: livekit.proto.LogBatch logs = 18;\n */\n value: LogBatch;\n case: \"logs\";\n } | {\n /**\n * @generated from field: livekit.proto.GetSessionStatsCallback get_session_stats = 19;\n */\n value: GetSessionStatsCallback;\n case: \"getSessionStats\";\n } | {\n /**\n * @generated from field: livekit.proto.Panic panic = 20;\n */\n value: Panic;\n case: \"panic\";\n } | {\n /**\n * @generated from field: livekit.proto.PublishSipDtmfCallback publish_sip_dtmf = 21;\n */\n value: PublishSipDtmfCallback;\n case: \"publishSipDtmf\";\n } | {\n /**\n * @generated from field: livekit.proto.SendChatMessageCallback chat_message = 22;\n */\n value: SendChatMessageCallback;\n case: \"chatMessage\";\n } | {\n /**\n * @generated from field: livekit.proto.PerformRpcCallback perform_rpc = 23;\n */\n value: PerformRpcCallback;\n case: \"performRpc\";\n } | {\n /**\n * @generated from field: livekit.proto.RpcMethodInvocationEvent rpc_method_invocation = 24;\n */\n value: RpcMethodInvocationEvent;\n case: \"rpcMethodInvocation\";\n } | {\n /**\n * @generated from field: livekit.proto.SendStreamHeaderCallback send_stream_header = 25;\n */\n value: SendStreamHeaderCallback;\n case: \"sendStreamHeader\";\n } | {\n /**\n * @generated from field: livekit.proto.SendStreamChunkCallback send_stream_chunk = 26;\n */\n value: SendStreamChunkCallback;\n case: \"sendStreamChunk\";\n } | {\n /**\n * @generated from field: livekit.proto.SendStreamTrailerCallback send_stream_trailer = 27;\n */\n value: SendStreamTrailerCallback;\n case: \"sendStreamTrailer\";\n } | { case: undefined; value?: undefined } = { case: undefined };\n\n constructor(data?: PartialMessage<FfiEvent>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.FfiEvent\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"room_event\", kind: \"message\", T: RoomEvent, oneof: \"message\" },\n { no: 2, name: \"track_event\", kind: \"message\", T: TrackEvent, oneof: \"message\" },\n { no: 3, name: \"video_stream_event\", kind: \"message\", T: VideoStreamEvent, oneof: \"message\" },\n { no: 4, name: \"audio_stream_event\", kind: \"message\", T: AudioStreamEvent, oneof: \"message\" },\n { no: 5, name: \"connect\", kind: \"message\", T: ConnectCallback, oneof: \"message\" },\n { no: 7, name: \"disconnect\", kind: \"message\", T: DisconnectCallback, oneof: \"message\" },\n { no: 8, name: \"dispose\", kind: \"message\", T: DisposeCallback, oneof: \"message\" },\n { no: 9, name: \"publish_track\", kind: \"message\", T: PublishTrackCallback, oneof: \"message\" },\n { no: 10, name: \"unpublish_track\", kind: \"message\", T: UnpublishTrackCallback, oneof: \"message\" },\n { no: 11, name: \"publish_data\", kind: \"message\", T: PublishDataCallback, oneof: \"message\" },\n { no: 12, name: \"publish_transcription\", kind: \"message\", T: PublishTranscriptionCallback, oneof: \"message\" },\n { no: 13, name: \"capture_audio_frame\", kind: \"message\", T: CaptureAudioFrameCallback, oneof: \"message\" },\n { no: 14, name: \"set_local_metadata\", kind: \"message\", T: SetLocalMetadataCallback, oneof: \"message\" },\n { no: 15, name: \"set_local_name\", kind: \"message\", T: SetLocalNameCallback, oneof: \"message\" },\n { no: 16, name: \"set_local_attributes\", kind: \"message\", T: SetLocalAttributesCallback, oneof: \"message\" },\n { no: 17, name: \"get_stats\", kind: \"message\", T: GetStatsCallback, oneof: \"message\" },\n { no: 18, name: \"logs\", kind: \"message\", T: LogBatch, oneof: \"message\" },\n { no: 19, name: \"get_session_stats\", kind: \"message\", T: GetSessionStatsCallback, oneof: \"message\" },\n { no: 20, name: \"panic\", kind: \"message\", T: Panic, oneof: \"message\" },\n { no: 21, name: \"publish_sip_dtmf\", kind: \"message\", T: PublishSipDtmfCallback, oneof: \"message\" },\n { no: 22, name: \"chat_message\", kind: \"message\", T: SendChatMessageCallback, oneof: \"message\" },\n { no: 23, name: \"perform_rpc\", kind: \"message\", T: PerformRpcCallback, oneof: \"message\" },\n { no: 24, name: \"rpc_method_invocation\", kind: \"message\", T: RpcMethodInvocationEvent, oneof: \"message\" },\n { no: 25, name: \"send_stream_header\", kind: \"message\", T: SendStreamHeaderCallback, oneof: \"message\" },\n { no: 26, name: \"send_stream_chunk\", kind: \"message\", T: SendStreamChunkCallback, oneof: \"message\" },\n { no: 27, name: \"send_stream_trailer\", kind: \"message\", T: SendStreamTrailerCallback, oneof: \"message\" },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiEvent {\n return new FfiEvent().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): FfiEvent {\n return new FfiEvent().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): FfiEvent {\n return new FfiEvent().fromJsonString(jsonString, options);\n }\n\n static equals(a: FfiEvent | PlainMessage<FfiEvent> | undefined, b: FfiEvent | PlainMessage<FfiEvent> | undefined): boolean {\n return proto2.util.equals(FfiEvent, a, b);\n }\n}\n\n/**\n * Stop all rooms synchronously (Do we need async here?).\n * e.g: This is used for the Unity Editor after each assemblies reload.\n * TODO(theomonnom): Implement a debug mode where we can find all leaked handles?\n *\n * @generated from message livekit.proto.DisposeRequest\n */\nexport class DisposeRequest extends Message<DisposeRequest> {\n /**\n * @generated from field: required bool async = 1;\n */\n async?: boolean;\n\n constructor(data?: PartialMessage<DisposeRequest>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.DisposeRequest\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"async\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DisposeRequest {\n return new DisposeRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DisposeRequest {\n return new DisposeRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DisposeRequest {\n return new DisposeRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisposeRequest | PlainMessage<DisposeRequest> | undefined, b: DisposeRequest | PlainMessage<DisposeRequest> | undefined): boolean {\n return proto2.util.equals(DisposeRequest, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.DisposeResponse\n */\nexport class DisposeResponse extends Message<DisposeResponse> {\n /**\n * None if sync\n *\n * @generated from field: optional uint64 async_id = 1;\n */\n asyncId?: bigint;\n\n constructor(data?: PartialMessage<DisposeResponse>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.DisposeResponse\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"async_id\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DisposeResponse {\n return new DisposeResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DisposeResponse {\n return new DisposeResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DisposeResponse {\n return new DisposeResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisposeResponse | PlainMessage<DisposeResponse> | undefined, b: DisposeResponse | PlainMessage<DisposeResponse> | undefined): boolean {\n return proto2.util.equals(DisposeResponse, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.DisposeCallback\n */\nexport class DisposeCallback extends Message<DisposeCallback> {\n /**\n * @generated from field: required uint64 async_id = 1;\n */\n asyncId?: bigint;\n\n constructor(data?: PartialMessage<DisposeCallback>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.DisposeCallback\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"async_id\", kind: \"scalar\", T: 4 /* ScalarType.UINT64 */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DisposeCallback {\n return new DisposeCallback().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DisposeCallback {\n return new DisposeCallback().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DisposeCallback {\n return new DisposeCallback().fromJsonString(jsonString, options);\n }\n\n static equals(a: DisposeCallback | PlainMessage<DisposeCallback> | undefined, b: DisposeCallback | PlainMessage<DisposeCallback> | undefined): boolean {\n return proto2.util.equals(DisposeCallback, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.LogRecord\n */\nexport class LogRecord extends Message<LogRecord> {\n /**\n * @generated from field: required livekit.proto.LogLevel level = 1;\n */\n level?: LogLevel;\n\n /**\n * e.g \"livekit\", \"libwebrtc\", \"tokio-tungstenite\", etc...\n *\n * @generated from field: required string target = 2;\n */\n target?: string;\n\n /**\n * @generated from field: optional string module_path = 3;\n */\n modulePath?: string;\n\n /**\n * @generated from field: optional string file = 4;\n */\n file?: string;\n\n /**\n * @generated from field: optional uint32 line = 5;\n */\n line?: number;\n\n /**\n * @generated from field: required string message = 6;\n */\n message?: string;\n\n constructor(data?: PartialMessage<LogRecord>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.LogRecord\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"level\", kind: \"enum\", T: proto2.getEnumType(LogLevel), req: true },\n { no: 2, name: \"target\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, req: true },\n { no: 3, name: \"module_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"file\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"line\", kind: \"scalar\", T: 13 /* ScalarType.UINT32 */, opt: true },\n { no: 6, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LogRecord {\n return new LogRecord().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LogRecord {\n return new LogRecord().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LogRecord {\n return new LogRecord().fromJsonString(jsonString, options);\n }\n\n static equals(a: LogRecord | PlainMessage<LogRecord> | undefined, b: LogRecord | PlainMessage<LogRecord> | undefined): boolean {\n return proto2.util.equals(LogRecord, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.LogBatch\n */\nexport class LogBatch extends Message<LogBatch> {\n /**\n * @generated from field: repeated livekit.proto.LogRecord records = 1;\n */\n records: LogRecord[] = [];\n\n constructor(data?: PartialMessage<LogBatch>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.LogBatch\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"records\", kind: \"message\", T: LogRecord, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LogBatch {\n return new LogBatch().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LogBatch {\n return new LogBatch().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LogBatch {\n return new LogBatch().fromJsonString(jsonString, options);\n }\n\n static equals(a: LogBatch | PlainMessage<LogBatch> | undefined, b: LogBatch | PlainMessage<LogBatch> | undefined): boolean {\n return proto2.util.equals(LogBatch, a, b);\n }\n}\n\n/**\n * @generated from message livekit.proto.Panic\n */\nexport class Panic extends Message<Panic> {\n /**\n * @generated from field: required string message = 1;\n */\n message?: string;\n\n constructor(data?: PartialMessage<Panic>) {\n super();\n proto2.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto2 = proto2;\n static readonly typeName = \"livekit.proto.Panic\";\n static readonly fields: FieldList = proto2.util.newFieldList(() => [\n { no: 1, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, req: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Panic {\n return new Panic().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Panic {\n return new Panic().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Panic {\n return new Panic().fromJsonString(jsonString, options);\n }\n\n static equals(a: Panic | PlainMessage<Panic> | undefined, b: Panic | PlainMessage<Panic> | undefined): boolean {\n return proto2.util.equals(Panic, a, b);\n }\n}\n\n"],"mappings":"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","names":["LogLevel"]}