// Native JSB

declare class TMGRoomBindings {
  constructor(contextBindings: TMGContextBindings);
  getRoomID(): string;
  changeRoomType(roomType: number): number;
  getRoomType(): number;
  startRoomSharing(targetRoomID: string, targetUserID: string, userSig: string, length: number):
      number;
  stopRoomSharing(): number;
  switchRoom(targetRoomID: string, userSig: string): number;
  sendCustomData(data: Uint8Array, length: number, repeatCount: number): number;
  stopSendCustomData(): number;
  updateAudioRecvRange(range: number): number;
  updateSpatializerRecvRange(range: number): number;
  updateSelfPosition(
      position: number[], positionLen: number, axisForward: number[], axisForwardLen: number,
      axisRight: number[], axisRightLen: number, axisUp: number[], axisUpLen: number): number;
  updateOtherPosition(userID: string, position: number[], positionLen: number): number;
  sendSEIMsg(message: Uint8Array, length: number, repeatCount: number): number;
}
