// // Autogenerated from Pigeon (v9.2.4), do not edit directly.
// // See also: https://pub.dev/packages/pigeon

// import Foundation
// #if os(iOS)
// import Flutter
// #elseif os(macOS)
// import FlutterMacOS
// #else
// #error("Unsupported platform.")
// #endif

// private func wrapResult(_ result: Any?) -> [Any?] {
//   return [result]
// }

// private func wrapError(_ error: Any) -> [Any?] {
//   if let flutterError = error as? FlutterError {
//     return [
//       flutterError.code,
//       flutterError.message,
//       flutterError.details
//     ]
//   }
//   return [
//     "\(error)",
//     "\(type(of: error))",
//     "Stacktrace: \(Thread.callStackSymbols)"
//   ]
// }

// private func nilOrValue<T>(_ value: Any?) -> T? {
//   if value is NSNull { return nil }
//   return (value as Any) as! T?
// }
// /// Generated protocol from Pigeon that represents a handler of messages from Flutter.
// protocol MesiboPluginApi {
//   func setup(token: String) throws
//   func setPushToken(token: String, voip: Bool) throws
//   func sendMessage(peer: String, message: String) throws
//   func showUserList() throws
//   func showMessages(peer: String) throws
//   func audioCall(peer: String) throws
//   func videoCall(peer: String) throws
// }

// /// Generated setup class from Pigeon to handle messages through the `binaryMessenger`.
// class MesiboPluginApiSetup {
//   /// The codec used by MesiboPluginApi.
//   /// Sets up an instance of `MesiboPluginApi` to handle messages through the `binaryMessenger`.
//   static func setUp(binaryMessenger: FlutterBinaryMessenger, api: MesiboPluginApi?) {
//     let setupChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.MesiboPluginApi.setup", binaryMessenger: binaryMessenger)
//     if let api = api {
//       setupChannel.setMessageHandler { message, reply in
//         let args = message as! [Any]
//         let tokenArg = args[0] as! String
//         do {
//           try api.setup(token: tokenArg)
//           reply(wrapResult(nil))
//         } catch {
//           reply(wrapError(error))
//         }
//       }
//     } else {
//       setupChannel.setMessageHandler(nil)
//     }
//     let setPushTokenChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.MesiboPluginApi.setPushToken", binaryMessenger: binaryMessenger)
//     if let api = api {
//       setPushTokenChannel.setMessageHandler { message, reply in
//         let args = message as! [Any]
//         let tokenArg = args[0] as! String
//         let voipArg = args[1] as! Bool
//         do {
//           try api.setPushToken(token: tokenArg, voip: voipArg)
//           reply(wrapResult(nil))
//         } catch {
//           reply(wrapError(error))
//         }
//       }
//     } else {
//       setPushTokenChannel.setMessageHandler(nil)
//     }
//     let sendMessageChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.MesiboPluginApi.sendMessage", binaryMessenger: binaryMessenger)
//     if let api = api {
//       sendMessageChannel.setMessageHandler { message, reply in
//         let args = message as! [Any]
//         let peerArg = args[0] as! String
//         let messageArg = args[1] as! String
//         do {
//           try api.sendMessage(peer: peerArg, message: messageArg)
//           reply(wrapResult(nil))
//         } catch {
//           reply(wrapError(error))
//         }
//       }
//     } else {
//       sendMessageChannel.setMessageHandler(nil)
//     }
//     let showUserListChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.MesiboPluginApi.showUserList", binaryMessenger: binaryMessenger)
//     if let api = api {
//       showUserListChannel.setMessageHandler { _, reply in
//         do {
//           try api.showUserList()
//           reply(wrapResult(nil))
//         } catch {
//           reply(wrapError(error))
//         }
//       }
//     } else {
//       showUserListChannel.setMessageHandler(nil)
//     }
//     let showMessagesChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.MesiboPluginApi.showMessages", binaryMessenger: binaryMessenger)
//     if let api = api {
//       showMessagesChannel.setMessageHandler { message, reply in
//         let args = message as! [Any]
//         let peerArg = args[0] as! String
//         do {
//           try api.showMessages(peer: peerArg)
//           reply(wrapResult(nil))
//         } catch {
//           reply(wrapError(error))
//         }
//       }
//     } else {
//       showMessagesChannel.setMessageHandler(nil)
//     }
//     let audioCallChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.MesiboPluginApi.audioCall", binaryMessenger: binaryMessenger)
//     if let api = api {
//       audioCallChannel.setMessageHandler { message, reply in
//         let args = message as! [Any]
//         let peerArg = args[0] as! String
//         do {
//           try api.audioCall(peer: peerArg)
//           reply(wrapResult(nil))
//         } catch {
//           reply(wrapError(error))
//         }
//       }
//     } else {
//       audioCallChannel.setMessageHandler(nil)
//     }
//     let videoCallChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.MesiboPluginApi.videoCall", binaryMessenger: binaryMessenger)
//     if let api = api {
//       videoCallChannel.setMessageHandler { message, reply in
//         let args = message as! [Any]
//         let peerArg = args[0] as! String
//         do {
//           try api.videoCall(peer: peerArg)
//           reply(wrapResult(nil))
//         } catch {
//           reply(wrapError(error))
//         }
//       }
//     } else {
//       videoCallChannel.setMessageHandler(nil)
//     }
//   }
// }
