import 'websocket/io.dart' if (dart.library.html) 'websocket/web.dart'; class WebSocketException implements Exception { final int code; const WebSocketException._(this.code); static WebSocketException unknown() => const WebSocketException._(0); static WebSocketException connect() => const WebSocketException._(1); @override String toString() => { WebSocketException.unknown(): 'Unknown error', WebSocketException.connect(): 'Failed to connect', }[this]!; } typedef WebSocketOnData = Function(dynamic data); typedef WebSocketOnError = Function(dynamic error); typedef WebSocketOnDispose = Function(); class WebSocketEventHandlers { final WebSocketOnData? onData; final WebSocketOnError? onError; final WebSocketOnDispose? onDispose; const WebSocketEventHandlers({ this.onData, this.onError, this.onDispose, }); } abstract class LiveKitWebSocket { void send(List data); Future dispose(); static Future connect( Uri uri, [ WebSocketEventHandlers? options, ]) => lkWebSocketConnect(uri, options); }