// GENERATED CODE - DO NOT MODIFY BY HAND
// coverage:ignore-file
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark

part of 'api.dart';

// **************************************************************************
// FreezedGenerator
// **************************************************************************

// dart format off
T _$identity<T>(T value) => value;
/// @nodoc
mixin _$BridgeEvent {





@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent);
}


@override
int get hashCode => runtimeType.hashCode;

@override
String toString() {
  return 'BridgeEvent()';
}


}

/// @nodoc
class $BridgeEventCopyWith<$Res>  {
$BridgeEventCopyWith(BridgeEvent _, $Res Function(BridgeEvent) __);
}


/// Adds pattern-matching-related methods to [BridgeEvent].
extension BridgeEventPatterns on BridgeEvent {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>({TResult Function( BridgeEvent_Connected value)?  connected,TResult Function( BridgeEvent_Lost value)?  lost,TResult Function( BridgeEvent_Reconnecting value)?  reconnecting,TResult Function( BridgeEvent_Disconnected value)?  disconnected,TResult Function( BridgeEvent_AudioStarted value)?  audioStarted,TResult Function( BridgeEvent_AudioStopped value)?  audioStopped,TResult Function( BridgeEvent_PttCapability value)?  pttCapability,TResult Function( BridgeEvent_VoiceState value)?  voiceState,TResult Function( BridgeEvent_InterruptionState value)?  interruptionState,TResult Function( BridgeEvent_PermissionState value)?  permissionState,TResult Function( BridgeEvent_ChatMessage value)?  chatMessage,TResult Function( BridgeEvent_ServerActivity value)?  serverActivity,TResult Function( BridgeEvent_AudioRouteChanged value)?  audioRouteChanged,TResult Function( BridgeEvent_ClientMoved value)?  clientMoved,TResult Function( BridgeEvent_ClientJoined value)?  clientJoined,TResult Function( BridgeEvent_ClientLeft value)?  clientLeft,TResult Function( BridgeEvent_ClientUpdated value)?  clientUpdated,TResult Function( BridgeEvent_ChannelAdded value)?  channelAdded,TResult Function( BridgeEvent_ChannelRemoved value)?  channelRemoved,TResult Function( BridgeEvent_ChannelUpdated value)?  channelUpdated,required TResult orElse(),}){
final _that = this;
switch (_that) {
case BridgeEvent_Connected() when connected != null:
return connected(_that);case BridgeEvent_Lost() when lost != null:
return lost(_that);case BridgeEvent_Reconnecting() when reconnecting != null:
return reconnecting(_that);case BridgeEvent_Disconnected() when disconnected != null:
return disconnected(_that);case BridgeEvent_AudioStarted() when audioStarted != null:
return audioStarted(_that);case BridgeEvent_AudioStopped() when audioStopped != null:
return audioStopped(_that);case BridgeEvent_PttCapability() when pttCapability != null:
return pttCapability(_that);case BridgeEvent_VoiceState() when voiceState != null:
return voiceState(_that);case BridgeEvent_InterruptionState() when interruptionState != null:
return interruptionState(_that);case BridgeEvent_PermissionState() when permissionState != null:
return permissionState(_that);case BridgeEvent_ChatMessage() when chatMessage != null:
return chatMessage(_that);case BridgeEvent_ServerActivity() when serverActivity != null:
return serverActivity(_that);case BridgeEvent_AudioRouteChanged() when audioRouteChanged != null:
return audioRouteChanged(_that);case BridgeEvent_ClientMoved() when clientMoved != null:
return clientMoved(_that);case BridgeEvent_ClientJoined() when clientJoined != null:
return clientJoined(_that);case BridgeEvent_ClientLeft() when clientLeft != null:
return clientLeft(_that);case BridgeEvent_ClientUpdated() when clientUpdated != null:
return clientUpdated(_that);case BridgeEvent_ChannelAdded() when channelAdded != null:
return channelAdded(_that);case BridgeEvent_ChannelRemoved() when channelRemoved != null:
return channelRemoved(_that);case BridgeEvent_ChannelUpdated() when channelUpdated != null:
return channelUpdated(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( BridgeEvent_Connected value)  connected,required TResult Function( BridgeEvent_Lost value)  lost,required TResult Function( BridgeEvent_Reconnecting value)  reconnecting,required TResult Function( BridgeEvent_Disconnected value)  disconnected,required TResult Function( BridgeEvent_AudioStarted value)  audioStarted,required TResult Function( BridgeEvent_AudioStopped value)  audioStopped,required TResult Function( BridgeEvent_PttCapability value)  pttCapability,required TResult Function( BridgeEvent_VoiceState value)  voiceState,required TResult Function( BridgeEvent_InterruptionState value)  interruptionState,required TResult Function( BridgeEvent_PermissionState value)  permissionState,required TResult Function( BridgeEvent_ChatMessage value)  chatMessage,required TResult Function( BridgeEvent_ServerActivity value)  serverActivity,required TResult Function( BridgeEvent_AudioRouteChanged value)  audioRouteChanged,required TResult Function( BridgeEvent_ClientMoved value)  clientMoved,required TResult Function( BridgeEvent_ClientJoined value)  clientJoined,required TResult Function( BridgeEvent_ClientLeft value)  clientLeft,required TResult Function( BridgeEvent_ClientUpdated value)  clientUpdated,required TResult Function( BridgeEvent_ChannelAdded value)  channelAdded,required TResult Function( BridgeEvent_ChannelRemoved value)  channelRemoved,required TResult Function( BridgeEvent_ChannelUpdated value)  channelUpdated,}){
final _that = this;
switch (_that) {
case BridgeEvent_Connected():
return connected(_that);case BridgeEvent_Lost():
return lost(_that);case BridgeEvent_Reconnecting():
return reconnecting(_that);case BridgeEvent_Disconnected():
return disconnected(_that);case BridgeEvent_AudioStarted():
return audioStarted(_that);case BridgeEvent_AudioStopped():
return audioStopped(_that);case BridgeEvent_PttCapability():
return pttCapability(_that);case BridgeEvent_VoiceState():
return voiceState(_that);case BridgeEvent_InterruptionState():
return interruptionState(_that);case BridgeEvent_PermissionState():
return permissionState(_that);case BridgeEvent_ChatMessage():
return chatMessage(_that);case BridgeEvent_ServerActivity():
return serverActivity(_that);case BridgeEvent_AudioRouteChanged():
return audioRouteChanged(_that);case BridgeEvent_ClientMoved():
return clientMoved(_that);case BridgeEvent_ClientJoined():
return clientJoined(_that);case BridgeEvent_ClientLeft():
return clientLeft(_that);case BridgeEvent_ClientUpdated():
return clientUpdated(_that);case BridgeEvent_ChannelAdded():
return channelAdded(_that);case BridgeEvent_ChannelRemoved():
return channelRemoved(_that);case BridgeEvent_ChannelUpdated():
return channelUpdated(_that);}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>({TResult? Function( BridgeEvent_Connected value)?  connected,TResult? Function( BridgeEvent_Lost value)?  lost,TResult? Function( BridgeEvent_Reconnecting value)?  reconnecting,TResult? Function( BridgeEvent_Disconnected value)?  disconnected,TResult? Function( BridgeEvent_AudioStarted value)?  audioStarted,TResult? Function( BridgeEvent_AudioStopped value)?  audioStopped,TResult? Function( BridgeEvent_PttCapability value)?  pttCapability,TResult? Function( BridgeEvent_VoiceState value)?  voiceState,TResult? Function( BridgeEvent_InterruptionState value)?  interruptionState,TResult? Function( BridgeEvent_PermissionState value)?  permissionState,TResult? Function( BridgeEvent_ChatMessage value)?  chatMessage,TResult? Function( BridgeEvent_ServerActivity value)?  serverActivity,TResult? Function( BridgeEvent_AudioRouteChanged value)?  audioRouteChanged,TResult? Function( BridgeEvent_ClientMoved value)?  clientMoved,TResult? Function( BridgeEvent_ClientJoined value)?  clientJoined,TResult? Function( BridgeEvent_ClientLeft value)?  clientLeft,TResult? Function( BridgeEvent_ClientUpdated value)?  clientUpdated,TResult? Function( BridgeEvent_ChannelAdded value)?  channelAdded,TResult? Function( BridgeEvent_ChannelRemoved value)?  channelRemoved,TResult? Function( BridgeEvent_ChannelUpdated value)?  channelUpdated,}){
final _that = this;
switch (_that) {
case BridgeEvent_Connected() when connected != null:
return connected(_that);case BridgeEvent_Lost() when lost != null:
return lost(_that);case BridgeEvent_Reconnecting() when reconnecting != null:
return reconnecting(_that);case BridgeEvent_Disconnected() when disconnected != null:
return disconnected(_that);case BridgeEvent_AudioStarted() when audioStarted != null:
return audioStarted(_that);case BridgeEvent_AudioStopped() when audioStopped != null:
return audioStopped(_that);case BridgeEvent_PttCapability() when pttCapability != null:
return pttCapability(_that);case BridgeEvent_VoiceState() when voiceState != null:
return voiceState(_that);case BridgeEvent_InterruptionState() when interruptionState != null:
return interruptionState(_that);case BridgeEvent_PermissionState() when permissionState != null:
return permissionState(_that);case BridgeEvent_ChatMessage() when chatMessage != null:
return chatMessage(_that);case BridgeEvent_ServerActivity() when serverActivity != null:
return serverActivity(_that);case BridgeEvent_AudioRouteChanged() when audioRouteChanged != null:
return audioRouteChanged(_that);case BridgeEvent_ClientMoved() when clientMoved != null:
return clientMoved(_that);case BridgeEvent_ClientJoined() when clientJoined != null:
return clientJoined(_that);case BridgeEvent_ClientLeft() when clientLeft != null:
return clientLeft(_that);case BridgeEvent_ClientUpdated() when clientUpdated != null:
return clientUpdated(_that);case BridgeEvent_ChannelAdded() when channelAdded != null:
return channelAdded(_that);case BridgeEvent_ChannelRemoved() when channelRemoved != null:
return channelRemoved(_that);case BridgeEvent_ChannelUpdated() when channelUpdated != null:
return channelUpdated(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function( String serverName)?  connected,TResult Function( String reason)?  lost,TResult Function( int attempt,  int delaySecs)?  reconnecting,TResult Function( String reason)?  disconnected,TResult Function()?  audioStarted,TResult Function()?  audioStopped,TResult Function( String level,  String backendId,  String boundInputClass)?  pttCapability,TResult Function( bool inChannel,  BridgeTransmitMode transmitMode,  bool mute,  int releaseTailMs,  BigInt? currentChannelId,  BigInt? pendingTargetChannelId,  bool canJoin,  bool canLeave,  BridgeVoiceJoinSyncState joinSyncState,  BridgeVoiceJoinErrorCode? joinErrorCode)?  voiceState,TResult Function( bool began,  bool shouldResume)?  interruptionState,TResult Function( String permission,  PermissionStateKind state)?  permissionState,TResult Function( BigInt senderId,  String senderName,  String message,  BridgeMessageTarget target)?  chatMessage,TResult Function( String message)?  serverActivity,TResult Function( BridgeAudioRoute route)?  audioRouteChanged,TResult Function( BigInt clientId,  BigInt newChannelId)?  clientMoved,TResult Function( BigInt clientId,  BigInt channelId,  String name,  bool inputMuted,  bool outputMuted,  bool isServerQuery,  int talkPower,  bool talkPowerGranted)?  clientJoined,TResult Function( BigInt clientId,  String name)?  clientLeft,TResult Function( BigInt clientId,  bool inputMuted,  bool outputMuted,  bool isServerQuery,  int talkPower,  bool talkPowerGranted)?  clientUpdated,TResult Function( BigInt id,  BigInt parent,  String name,  PlatformInt64 order,  bool hasPassword,  int? neededTalkPower)?  channelAdded,TResult Function( BigInt id)?  channelRemoved,TResult Function( BigInt id,  String name,  bool hasPassword,  int? neededTalkPower)?  channelUpdated,required TResult orElse(),}) {final _that = this;
switch (_that) {
case BridgeEvent_Connected() when connected != null:
return connected(_that.serverName);case BridgeEvent_Lost() when lost != null:
return lost(_that.reason);case BridgeEvent_Reconnecting() when reconnecting != null:
return reconnecting(_that.attempt,_that.delaySecs);case BridgeEvent_Disconnected() when disconnected != null:
return disconnected(_that.reason);case BridgeEvent_AudioStarted() when audioStarted != null:
return audioStarted();case BridgeEvent_AudioStopped() when audioStopped != null:
return audioStopped();case BridgeEvent_PttCapability() when pttCapability != null:
return pttCapability(_that.level,_that.backendId,_that.boundInputClass);case BridgeEvent_VoiceState() when voiceState != null:
return voiceState(_that.inChannel,_that.transmitMode,_that.mute,_that.releaseTailMs,_that.currentChannelId,_that.pendingTargetChannelId,_that.canJoin,_that.canLeave,_that.joinSyncState,_that.joinErrorCode);case BridgeEvent_InterruptionState() when interruptionState != null:
return interruptionState(_that.began,_that.shouldResume);case BridgeEvent_PermissionState() when permissionState != null:
return permissionState(_that.permission,_that.state);case BridgeEvent_ChatMessage() when chatMessage != null:
return chatMessage(_that.senderId,_that.senderName,_that.message,_that.target);case BridgeEvent_ServerActivity() when serverActivity != null:
return serverActivity(_that.message);case BridgeEvent_AudioRouteChanged() when audioRouteChanged != null:
return audioRouteChanged(_that.route);case BridgeEvent_ClientMoved() when clientMoved != null:
return clientMoved(_that.clientId,_that.newChannelId);case BridgeEvent_ClientJoined() when clientJoined != null:
return clientJoined(_that.clientId,_that.channelId,_that.name,_that.inputMuted,_that.outputMuted,_that.isServerQuery,_that.talkPower,_that.talkPowerGranted);case BridgeEvent_ClientLeft() when clientLeft != null:
return clientLeft(_that.clientId,_that.name);case BridgeEvent_ClientUpdated() when clientUpdated != null:
return clientUpdated(_that.clientId,_that.inputMuted,_that.outputMuted,_that.isServerQuery,_that.talkPower,_that.talkPowerGranted);case BridgeEvent_ChannelAdded() when channelAdded != null:
return channelAdded(_that.id,_that.parent,_that.name,_that.order,_that.hasPassword,_that.neededTalkPower);case BridgeEvent_ChannelRemoved() when channelRemoved != null:
return channelRemoved(_that.id);case BridgeEvent_ChannelUpdated() when channelUpdated != null:
return channelUpdated(_that.id,_that.name,_that.hasPassword,_that.neededTalkPower);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function( String serverName)  connected,required TResult Function( String reason)  lost,required TResult Function( int attempt,  int delaySecs)  reconnecting,required TResult Function( String reason)  disconnected,required TResult Function()  audioStarted,required TResult Function()  audioStopped,required TResult Function( String level,  String backendId,  String boundInputClass)  pttCapability,required TResult Function( bool inChannel,  BridgeTransmitMode transmitMode,  bool mute,  int releaseTailMs,  BigInt? currentChannelId,  BigInt? pendingTargetChannelId,  bool canJoin,  bool canLeave,  BridgeVoiceJoinSyncState joinSyncState,  BridgeVoiceJoinErrorCode? joinErrorCode)  voiceState,required TResult Function( bool began,  bool shouldResume)  interruptionState,required TResult Function( String permission,  PermissionStateKind state)  permissionState,required TResult Function( BigInt senderId,  String senderName,  String message,  BridgeMessageTarget target)  chatMessage,required TResult Function( String message)  serverActivity,required TResult Function( BridgeAudioRoute route)  audioRouteChanged,required TResult Function( BigInt clientId,  BigInt newChannelId)  clientMoved,required TResult Function( BigInt clientId,  BigInt channelId,  String name,  bool inputMuted,  bool outputMuted,  bool isServerQuery,  int talkPower,  bool talkPowerGranted)  clientJoined,required TResult Function( BigInt clientId,  String name)  clientLeft,required TResult Function( BigInt clientId,  bool inputMuted,  bool outputMuted,  bool isServerQuery,  int talkPower,  bool talkPowerGranted)  clientUpdated,required TResult Function( BigInt id,  BigInt parent,  String name,  PlatformInt64 order,  bool hasPassword,  int? neededTalkPower)  channelAdded,required TResult Function( BigInt id)  channelRemoved,required TResult Function( BigInt id,  String name,  bool hasPassword,  int? neededTalkPower)  channelUpdated,}) {final _that = this;
switch (_that) {
case BridgeEvent_Connected():
return connected(_that.serverName);case BridgeEvent_Lost():
return lost(_that.reason);case BridgeEvent_Reconnecting():
return reconnecting(_that.attempt,_that.delaySecs);case BridgeEvent_Disconnected():
return disconnected(_that.reason);case BridgeEvent_AudioStarted():
return audioStarted();case BridgeEvent_AudioStopped():
return audioStopped();case BridgeEvent_PttCapability():
return pttCapability(_that.level,_that.backendId,_that.boundInputClass);case BridgeEvent_VoiceState():
return voiceState(_that.inChannel,_that.transmitMode,_that.mute,_that.releaseTailMs,_that.currentChannelId,_that.pendingTargetChannelId,_that.canJoin,_that.canLeave,_that.joinSyncState,_that.joinErrorCode);case BridgeEvent_InterruptionState():
return interruptionState(_that.began,_that.shouldResume);case BridgeEvent_PermissionState():
return permissionState(_that.permission,_that.state);case BridgeEvent_ChatMessage():
return chatMessage(_that.senderId,_that.senderName,_that.message,_that.target);case BridgeEvent_ServerActivity():
return serverActivity(_that.message);case BridgeEvent_AudioRouteChanged():
return audioRouteChanged(_that.route);case BridgeEvent_ClientMoved():
return clientMoved(_that.clientId,_that.newChannelId);case BridgeEvent_ClientJoined():
return clientJoined(_that.clientId,_that.channelId,_that.name,_that.inputMuted,_that.outputMuted,_that.isServerQuery,_that.talkPower,_that.talkPowerGranted);case BridgeEvent_ClientLeft():
return clientLeft(_that.clientId,_that.name);case BridgeEvent_ClientUpdated():
return clientUpdated(_that.clientId,_that.inputMuted,_that.outputMuted,_that.isServerQuery,_that.talkPower,_that.talkPowerGranted);case BridgeEvent_ChannelAdded():
return channelAdded(_that.id,_that.parent,_that.name,_that.order,_that.hasPassword,_that.neededTalkPower);case BridgeEvent_ChannelRemoved():
return channelRemoved(_that.id);case BridgeEvent_ChannelUpdated():
return channelUpdated(_that.id,_that.name,_that.hasPassword,_that.neededTalkPower);}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function( String serverName)?  connected,TResult? Function( String reason)?  lost,TResult? Function( int attempt,  int delaySecs)?  reconnecting,TResult? Function( String reason)?  disconnected,TResult? Function()?  audioStarted,TResult? Function()?  audioStopped,TResult? Function( String level,  String backendId,  String boundInputClass)?  pttCapability,TResult? Function( bool inChannel,  BridgeTransmitMode transmitMode,  bool mute,  int releaseTailMs,  BigInt? currentChannelId,  BigInt? pendingTargetChannelId,  bool canJoin,  bool canLeave,  BridgeVoiceJoinSyncState joinSyncState,  BridgeVoiceJoinErrorCode? joinErrorCode)?  voiceState,TResult? Function( bool began,  bool shouldResume)?  interruptionState,TResult? Function( String permission,  PermissionStateKind state)?  permissionState,TResult? Function( BigInt senderId,  String senderName,  String message,  BridgeMessageTarget target)?  chatMessage,TResult? Function( String message)?  serverActivity,TResult? Function( BridgeAudioRoute route)?  audioRouteChanged,TResult? Function( BigInt clientId,  BigInt newChannelId)?  clientMoved,TResult? Function( BigInt clientId,  BigInt channelId,  String name,  bool inputMuted,  bool outputMuted,  bool isServerQuery,  int talkPower,  bool talkPowerGranted)?  clientJoined,TResult? Function( BigInt clientId,  String name)?  clientLeft,TResult? Function( BigInt clientId,  bool inputMuted,  bool outputMuted,  bool isServerQuery,  int talkPower,  bool talkPowerGranted)?  clientUpdated,TResult? Function( BigInt id,  BigInt parent,  String name,  PlatformInt64 order,  bool hasPassword,  int? neededTalkPower)?  channelAdded,TResult? Function( BigInt id)?  channelRemoved,TResult? Function( BigInt id,  String name,  bool hasPassword,  int? neededTalkPower)?  channelUpdated,}) {final _that = this;
switch (_that) {
case BridgeEvent_Connected() when connected != null:
return connected(_that.serverName);case BridgeEvent_Lost() when lost != null:
return lost(_that.reason);case BridgeEvent_Reconnecting() when reconnecting != null:
return reconnecting(_that.attempt,_that.delaySecs);case BridgeEvent_Disconnected() when disconnected != null:
return disconnected(_that.reason);case BridgeEvent_AudioStarted() when audioStarted != null:
return audioStarted();case BridgeEvent_AudioStopped() when audioStopped != null:
return audioStopped();case BridgeEvent_PttCapability() when pttCapability != null:
return pttCapability(_that.level,_that.backendId,_that.boundInputClass);case BridgeEvent_VoiceState() when voiceState != null:
return voiceState(_that.inChannel,_that.transmitMode,_that.mute,_that.releaseTailMs,_that.currentChannelId,_that.pendingTargetChannelId,_that.canJoin,_that.canLeave,_that.joinSyncState,_that.joinErrorCode);case BridgeEvent_InterruptionState() when interruptionState != null:
return interruptionState(_that.began,_that.shouldResume);case BridgeEvent_PermissionState() when permissionState != null:
return permissionState(_that.permission,_that.state);case BridgeEvent_ChatMessage() when chatMessage != null:
return chatMessage(_that.senderId,_that.senderName,_that.message,_that.target);case BridgeEvent_ServerActivity() when serverActivity != null:
return serverActivity(_that.message);case BridgeEvent_AudioRouteChanged() when audioRouteChanged != null:
return audioRouteChanged(_that.route);case BridgeEvent_ClientMoved() when clientMoved != null:
return clientMoved(_that.clientId,_that.newChannelId);case BridgeEvent_ClientJoined() when clientJoined != null:
return clientJoined(_that.clientId,_that.channelId,_that.name,_that.inputMuted,_that.outputMuted,_that.isServerQuery,_that.talkPower,_that.talkPowerGranted);case BridgeEvent_ClientLeft() when clientLeft != null:
return clientLeft(_that.clientId,_that.name);case BridgeEvent_ClientUpdated() when clientUpdated != null:
return clientUpdated(_that.clientId,_that.inputMuted,_that.outputMuted,_that.isServerQuery,_that.talkPower,_that.talkPowerGranted);case BridgeEvent_ChannelAdded() when channelAdded != null:
return channelAdded(_that.id,_that.parent,_that.name,_that.order,_that.hasPassword,_that.neededTalkPower);case BridgeEvent_ChannelRemoved() when channelRemoved != null:
return channelRemoved(_that.id);case BridgeEvent_ChannelUpdated() when channelUpdated != null:
return channelUpdated(_that.id,_that.name,_that.hasPassword,_that.neededTalkPower);case _:
  return null;

}
}

}

/// @nodoc


class BridgeEvent_Connected extends BridgeEvent {
  const BridgeEvent_Connected({required this.serverName}): super._();
  

/// Server name reported by the server snapshot.
 final  String serverName;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ConnectedCopyWith<BridgeEvent_Connected> get copyWith => _$BridgeEvent_ConnectedCopyWithImpl<BridgeEvent_Connected>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_Connected&&(identical(other.serverName, serverName) || other.serverName == serverName));
}


@override
int get hashCode => Object.hash(runtimeType,serverName);

@override
String toString() {
  return 'BridgeEvent.connected(serverName: $serverName)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ConnectedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ConnectedCopyWith(BridgeEvent_Connected value, $Res Function(BridgeEvent_Connected) _then) = _$BridgeEvent_ConnectedCopyWithImpl;
@useResult
$Res call({
 String serverName
});




}
/// @nodoc
class _$BridgeEvent_ConnectedCopyWithImpl<$Res>
    implements $BridgeEvent_ConnectedCopyWith<$Res> {
  _$BridgeEvent_ConnectedCopyWithImpl(this._self, this._then);

  final BridgeEvent_Connected _self;
  final $Res Function(BridgeEvent_Connected) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? serverName = null,}) {
  return _then(BridgeEvent_Connected(
serverName: null == serverName ? _self.serverName : serverName // ignore: cast_nullable_to_non_nullable
as String,
  ));
}


}

/// @nodoc


class BridgeEvent_Lost extends BridgeEvent {
  const BridgeEvent_Lost({required this.reason}): super._();
  

/// Reason classification from the protocol layer.
 final  String reason;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_LostCopyWith<BridgeEvent_Lost> get copyWith => _$BridgeEvent_LostCopyWithImpl<BridgeEvent_Lost>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_Lost&&(identical(other.reason, reason) || other.reason == reason));
}


@override
int get hashCode => Object.hash(runtimeType,reason);

@override
String toString() {
  return 'BridgeEvent.lost(reason: $reason)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_LostCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_LostCopyWith(BridgeEvent_Lost value, $Res Function(BridgeEvent_Lost) _then) = _$BridgeEvent_LostCopyWithImpl;
@useResult
$Res call({
 String reason
});




}
/// @nodoc
class _$BridgeEvent_LostCopyWithImpl<$Res>
    implements $BridgeEvent_LostCopyWith<$Res> {
  _$BridgeEvent_LostCopyWithImpl(this._self, this._then);

  final BridgeEvent_Lost _self;
  final $Res Function(BridgeEvent_Lost) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? reason = null,}) {
  return _then(BridgeEvent_Lost(
reason: null == reason ? _self.reason : reason // ignore: cast_nullable_to_non_nullable
as String,
  ));
}


}

/// @nodoc


class BridgeEvent_Reconnecting extends BridgeEvent {
  const BridgeEvent_Reconnecting({required this.attempt, required this.delaySecs}): super._();
  

/// 1-based attempt counter for the current outage.
 final  int attempt;
/// Seconds the supervisor will sleep before this attempt.
 final  int delaySecs;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ReconnectingCopyWith<BridgeEvent_Reconnecting> get copyWith => _$BridgeEvent_ReconnectingCopyWithImpl<BridgeEvent_Reconnecting>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_Reconnecting&&(identical(other.attempt, attempt) || other.attempt == attempt)&&(identical(other.delaySecs, delaySecs) || other.delaySecs == delaySecs));
}


@override
int get hashCode => Object.hash(runtimeType,attempt,delaySecs);

@override
String toString() {
  return 'BridgeEvent.reconnecting(attempt: $attempt, delaySecs: $delaySecs)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ReconnectingCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ReconnectingCopyWith(BridgeEvent_Reconnecting value, $Res Function(BridgeEvent_Reconnecting) _then) = _$BridgeEvent_ReconnectingCopyWithImpl;
@useResult
$Res call({
 int attempt, int delaySecs
});




}
/// @nodoc
class _$BridgeEvent_ReconnectingCopyWithImpl<$Res>
    implements $BridgeEvent_ReconnectingCopyWith<$Res> {
  _$BridgeEvent_ReconnectingCopyWithImpl(this._self, this._then);

  final BridgeEvent_Reconnecting _self;
  final $Res Function(BridgeEvent_Reconnecting) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? attempt = null,Object? delaySecs = null,}) {
  return _then(BridgeEvent_Reconnecting(
attempt: null == attempt ? _self.attempt : attempt // ignore: cast_nullable_to_non_nullable
as int,delaySecs: null == delaySecs ? _self.delaySecs : delaySecs // ignore: cast_nullable_to_non_nullable
as int,
  ));
}


}

/// @nodoc


class BridgeEvent_Disconnected extends BridgeEvent {
  const BridgeEvent_Disconnected({required this.reason}): super._();
  

/// Reason classification.
 final  String reason;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_DisconnectedCopyWith<BridgeEvent_Disconnected> get copyWith => _$BridgeEvent_DisconnectedCopyWithImpl<BridgeEvent_Disconnected>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_Disconnected&&(identical(other.reason, reason) || other.reason == reason));
}


@override
int get hashCode => Object.hash(runtimeType,reason);

@override
String toString() {
  return 'BridgeEvent.disconnected(reason: $reason)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_DisconnectedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_DisconnectedCopyWith(BridgeEvent_Disconnected value, $Res Function(BridgeEvent_Disconnected) _then) = _$BridgeEvent_DisconnectedCopyWithImpl;
@useResult
$Res call({
 String reason
});




}
/// @nodoc
class _$BridgeEvent_DisconnectedCopyWithImpl<$Res>
    implements $BridgeEvent_DisconnectedCopyWith<$Res> {
  _$BridgeEvent_DisconnectedCopyWithImpl(this._self, this._then);

  final BridgeEvent_Disconnected _self;
  final $Res Function(BridgeEvent_Disconnected) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? reason = null,}) {
  return _then(BridgeEvent_Disconnected(
reason: null == reason ? _self.reason : reason // ignore: cast_nullable_to_non_nullable
as String,
  ));
}


}

/// @nodoc


class BridgeEvent_AudioStarted extends BridgeEvent {
  const BridgeEvent_AudioStarted(): super._();
  






@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_AudioStarted);
}


@override
int get hashCode => runtimeType.hashCode;

@override
String toString() {
  return 'BridgeEvent.audioStarted()';
}


}




/// @nodoc


class BridgeEvent_AudioStopped extends BridgeEvent {
  const BridgeEvent_AudioStopped(): super._();
  






@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_AudioStopped);
}


@override
int get hashCode => runtimeType.hashCode;

@override
String toString() {
  return 'BridgeEvent.audioStopped()';
}


}




/// @nodoc


class BridgeEvent_PttCapability extends BridgeEvent {
  const BridgeEvent_PttCapability({required this.level, required this.backendId, required this.boundInputClass}): super._();
  

/// Stable capability identifier (`"L0Focused"`,
/// `"L1GlobalShortcut"`, `"L2GlobalHoldToTalk"`,
/// `"L3GlobalWithMouseButtons"`, or `"L4DeviceAware"`).
 final  String level;
/// Stable backend identifier (e.g. `"focused"`).
 final  String backendId;
/// Coarse bound input class (e.g. `"keyboard"`,
/// `"mouse-side-button"`); empty when no binding is active.
 final  String boundInputClass;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_PttCapabilityCopyWith<BridgeEvent_PttCapability> get copyWith => _$BridgeEvent_PttCapabilityCopyWithImpl<BridgeEvent_PttCapability>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_PttCapability&&(identical(other.level, level) || other.level == level)&&(identical(other.backendId, backendId) || other.backendId == backendId)&&(identical(other.boundInputClass, boundInputClass) || other.boundInputClass == boundInputClass));
}


@override
int get hashCode => Object.hash(runtimeType,level,backendId,boundInputClass);

@override
String toString() {
  return 'BridgeEvent.pttCapability(level: $level, backendId: $backendId, boundInputClass: $boundInputClass)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_PttCapabilityCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_PttCapabilityCopyWith(BridgeEvent_PttCapability value, $Res Function(BridgeEvent_PttCapability) _then) = _$BridgeEvent_PttCapabilityCopyWithImpl;
@useResult
$Res call({
 String level, String backendId, String boundInputClass
});




}
/// @nodoc
class _$BridgeEvent_PttCapabilityCopyWithImpl<$Res>
    implements $BridgeEvent_PttCapabilityCopyWith<$Res> {
  _$BridgeEvent_PttCapabilityCopyWithImpl(this._self, this._then);

  final BridgeEvent_PttCapability _self;
  final $Res Function(BridgeEvent_PttCapability) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? level = null,Object? backendId = null,Object? boundInputClass = null,}) {
  return _then(BridgeEvent_PttCapability(
level: null == level ? _self.level : level // ignore: cast_nullable_to_non_nullable
as String,backendId: null == backendId ? _self.backendId : backendId // ignore: cast_nullable_to_non_nullable
as String,boundInputClass: null == boundInputClass ? _self.boundInputClass : boundInputClass // ignore: cast_nullable_to_non_nullable
as String,
  ));
}


}

/// @nodoc


class BridgeEvent_VoiceState extends BridgeEvent {
  const BridgeEvent_VoiceState({required this.inChannel, required this.transmitMode, required this.mute, required this.releaseTailMs, this.currentChannelId, this.pendingTargetChannelId, required this.canJoin, required this.canLeave, required this.joinSyncState, this.joinErrorCode}): super._();
  

/// True when the session is currently joined to a voice
/// channel and the audio engine is running.
 final  bool inChannel;
/// Active transmit mode.
 final  BridgeTransmitMode transmitMode;
/// True when the hard-mute clamp is engaged.
 final  bool mute;
/// Current release-tail in milliseconds (0..=500).
 final  int releaseTailMs;
/// Last confirmed authoritative channel id.
 final  BigInt? currentChannelId;
/// Non-authoritative pending join target channel id.
 final  BigInt? pendingTargetChannelId;
/// Whether a new join intent is currently allowed.
 final  bool canJoin;
/// Whether leave intent is currently allowed.
 final  bool canLeave;
/// Join projection sync state.
 final  BridgeVoiceJoinSyncState joinSyncState;
/// Last stable join error code, if any.
 final  BridgeVoiceJoinErrorCode? joinErrorCode;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_VoiceStateCopyWith<BridgeEvent_VoiceState> get copyWith => _$BridgeEvent_VoiceStateCopyWithImpl<BridgeEvent_VoiceState>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_VoiceState&&(identical(other.inChannel, inChannel) || other.inChannel == inChannel)&&(identical(other.transmitMode, transmitMode) || other.transmitMode == transmitMode)&&(identical(other.mute, mute) || other.mute == mute)&&(identical(other.releaseTailMs, releaseTailMs) || other.releaseTailMs == releaseTailMs)&&(identical(other.currentChannelId, currentChannelId) || other.currentChannelId == currentChannelId)&&(identical(other.pendingTargetChannelId, pendingTargetChannelId) || other.pendingTargetChannelId == pendingTargetChannelId)&&(identical(other.canJoin, canJoin) || other.canJoin == canJoin)&&(identical(other.canLeave, canLeave) || other.canLeave == canLeave)&&(identical(other.joinSyncState, joinSyncState) || other.joinSyncState == joinSyncState)&&(identical(other.joinErrorCode, joinErrorCode) || other.joinErrorCode == joinErrorCode));
}


@override
int get hashCode => Object.hash(runtimeType,inChannel,transmitMode,mute,releaseTailMs,currentChannelId,pendingTargetChannelId,canJoin,canLeave,joinSyncState,joinErrorCode);

@override
String toString() {
  return 'BridgeEvent.voiceState(inChannel: $inChannel, transmitMode: $transmitMode, mute: $mute, releaseTailMs: $releaseTailMs, currentChannelId: $currentChannelId, pendingTargetChannelId: $pendingTargetChannelId, canJoin: $canJoin, canLeave: $canLeave, joinSyncState: $joinSyncState, joinErrorCode: $joinErrorCode)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_VoiceStateCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_VoiceStateCopyWith(BridgeEvent_VoiceState value, $Res Function(BridgeEvent_VoiceState) _then) = _$BridgeEvent_VoiceStateCopyWithImpl;
@useResult
$Res call({
 bool inChannel, BridgeTransmitMode transmitMode, bool mute, int releaseTailMs, BigInt? currentChannelId, BigInt? pendingTargetChannelId, bool canJoin, bool canLeave, BridgeVoiceJoinSyncState joinSyncState, BridgeVoiceJoinErrorCode? joinErrorCode
});




}
/// @nodoc
class _$BridgeEvent_VoiceStateCopyWithImpl<$Res>
    implements $BridgeEvent_VoiceStateCopyWith<$Res> {
  _$BridgeEvent_VoiceStateCopyWithImpl(this._self, this._then);

  final BridgeEvent_VoiceState _self;
  final $Res Function(BridgeEvent_VoiceState) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? inChannel = null,Object? transmitMode = null,Object? mute = null,Object? releaseTailMs = null,Object? currentChannelId = freezed,Object? pendingTargetChannelId = freezed,Object? canJoin = null,Object? canLeave = null,Object? joinSyncState = null,Object? joinErrorCode = freezed,}) {
  return _then(BridgeEvent_VoiceState(
inChannel: null == inChannel ? _self.inChannel : inChannel // ignore: cast_nullable_to_non_nullable
as bool,transmitMode: null == transmitMode ? _self.transmitMode : transmitMode // ignore: cast_nullable_to_non_nullable
as BridgeTransmitMode,mute: null == mute ? _self.mute : mute // ignore: cast_nullable_to_non_nullable
as bool,releaseTailMs: null == releaseTailMs ? _self.releaseTailMs : releaseTailMs // ignore: cast_nullable_to_non_nullable
as int,currentChannelId: freezed == currentChannelId ? _self.currentChannelId : currentChannelId // ignore: cast_nullable_to_non_nullable
as BigInt?,pendingTargetChannelId: freezed == pendingTargetChannelId ? _self.pendingTargetChannelId : pendingTargetChannelId // ignore: cast_nullable_to_non_nullable
as BigInt?,canJoin: null == canJoin ? _self.canJoin : canJoin // ignore: cast_nullable_to_non_nullable
as bool,canLeave: null == canLeave ? _self.canLeave : canLeave // ignore: cast_nullable_to_non_nullable
as bool,joinSyncState: null == joinSyncState ? _self.joinSyncState : joinSyncState // ignore: cast_nullable_to_non_nullable
as BridgeVoiceJoinSyncState,joinErrorCode: freezed == joinErrorCode ? _self.joinErrorCode : joinErrorCode // ignore: cast_nullable_to_non_nullable
as BridgeVoiceJoinErrorCode?,
  ));
}


}

/// @nodoc


class BridgeEvent_InterruptionState extends BridgeEvent {
  const BridgeEvent_InterruptionState({required this.began, required this.shouldResume}): super._();
  

/// True when interruption began, false when it ended.
 final  bool began;
/// Resume recommendation from the platform. False on begin.
 final  bool shouldResume;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_InterruptionStateCopyWith<BridgeEvent_InterruptionState> get copyWith => _$BridgeEvent_InterruptionStateCopyWithImpl<BridgeEvent_InterruptionState>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_InterruptionState&&(identical(other.began, began) || other.began == began)&&(identical(other.shouldResume, shouldResume) || other.shouldResume == shouldResume));
}


@override
int get hashCode => Object.hash(runtimeType,began,shouldResume);

@override
String toString() {
  return 'BridgeEvent.interruptionState(began: $began, shouldResume: $shouldResume)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_InterruptionStateCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_InterruptionStateCopyWith(BridgeEvent_InterruptionState value, $Res Function(BridgeEvent_InterruptionState) _then) = _$BridgeEvent_InterruptionStateCopyWithImpl;
@useResult
$Res call({
 bool began, bool shouldResume
});




}
/// @nodoc
class _$BridgeEvent_InterruptionStateCopyWithImpl<$Res>
    implements $BridgeEvent_InterruptionStateCopyWith<$Res> {
  _$BridgeEvent_InterruptionStateCopyWithImpl(this._self, this._then);

  final BridgeEvent_InterruptionState _self;
  final $Res Function(BridgeEvent_InterruptionState) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? began = null,Object? shouldResume = null,}) {
  return _then(BridgeEvent_InterruptionState(
began: null == began ? _self.began : began // ignore: cast_nullable_to_non_nullable
as bool,shouldResume: null == shouldResume ? _self.shouldResume : shouldResume // ignore: cast_nullable_to_non_nullable
as bool,
  ));
}


}

/// @nodoc


class BridgeEvent_PermissionState extends BridgeEvent {
  const BridgeEvent_PermissionState({required this.permission, required this.state}): super._();
  

/// Canonical Android permission identifier.
 final  String permission;
/// Resolved permission state.
 final  PermissionStateKind state;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_PermissionStateCopyWith<BridgeEvent_PermissionState> get copyWith => _$BridgeEvent_PermissionStateCopyWithImpl<BridgeEvent_PermissionState>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_PermissionState&&(identical(other.permission, permission) || other.permission == permission)&&(identical(other.state, state) || other.state == state));
}


@override
int get hashCode => Object.hash(runtimeType,permission,state);

@override
String toString() {
  return 'BridgeEvent.permissionState(permission: $permission, state: $state)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_PermissionStateCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_PermissionStateCopyWith(BridgeEvent_PermissionState value, $Res Function(BridgeEvent_PermissionState) _then) = _$BridgeEvent_PermissionStateCopyWithImpl;
@useResult
$Res call({
 String permission, PermissionStateKind state
});




}
/// @nodoc
class _$BridgeEvent_PermissionStateCopyWithImpl<$Res>
    implements $BridgeEvent_PermissionStateCopyWith<$Res> {
  _$BridgeEvent_PermissionStateCopyWithImpl(this._self, this._then);

  final BridgeEvent_PermissionState _self;
  final $Res Function(BridgeEvent_PermissionState) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? permission = null,Object? state = null,}) {
  return _then(BridgeEvent_PermissionState(
permission: null == permission ? _self.permission : permission // ignore: cast_nullable_to_non_nullable
as String,state: null == state ? _self.state : state // ignore: cast_nullable_to_non_nullable
as PermissionStateKind,
  ));
}


}

/// @nodoc


class BridgeEvent_ChatMessage extends BridgeEvent {
  const BridgeEvent_ChatMessage({required this.senderId, required this.senderName, required this.message, required this.target}): super._();
  

/// Client id of the sender.
 final  BigInt senderId;
/// Nickname of the sender.
 final  String senderName;
/// Message content.
 final  String message;
/// Target scope (server/channel/private/poke).
 final  BridgeMessageTarget target;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ChatMessageCopyWith<BridgeEvent_ChatMessage> get copyWith => _$BridgeEvent_ChatMessageCopyWithImpl<BridgeEvent_ChatMessage>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ChatMessage&&(identical(other.senderId, senderId) || other.senderId == senderId)&&(identical(other.senderName, senderName) || other.senderName == senderName)&&(identical(other.message, message) || other.message == message)&&(identical(other.target, target) || other.target == target));
}


@override
int get hashCode => Object.hash(runtimeType,senderId,senderName,message,target);

@override
String toString() {
  return 'BridgeEvent.chatMessage(senderId: $senderId, senderName: $senderName, message: $message, target: $target)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ChatMessageCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ChatMessageCopyWith(BridgeEvent_ChatMessage value, $Res Function(BridgeEvent_ChatMessage) _then) = _$BridgeEvent_ChatMessageCopyWithImpl;
@useResult
$Res call({
 BigInt senderId, String senderName, String message, BridgeMessageTarget target
});


$BridgeMessageTargetCopyWith<$Res> get target;

}
/// @nodoc
class _$BridgeEvent_ChatMessageCopyWithImpl<$Res>
    implements $BridgeEvent_ChatMessageCopyWith<$Res> {
  _$BridgeEvent_ChatMessageCopyWithImpl(this._self, this._then);

  final BridgeEvent_ChatMessage _self;
  final $Res Function(BridgeEvent_ChatMessage) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? senderId = null,Object? senderName = null,Object? message = null,Object? target = null,}) {
  return _then(BridgeEvent_ChatMessage(
senderId: null == senderId ? _self.senderId : senderId // ignore: cast_nullable_to_non_nullable
as BigInt,senderName: null == senderName ? _self.senderName : senderName // ignore: cast_nullable_to_non_nullable
as String,message: null == message ? _self.message : message // ignore: cast_nullable_to_non_nullable
as String,target: null == target ? _self.target : target // ignore: cast_nullable_to_non_nullable
as BridgeMessageTarget,
  ));
}

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$BridgeMessageTargetCopyWith<$Res> get target {
  
  return $BridgeMessageTargetCopyWith<$Res>(_self.target, (value) {
    return _then(_self.copyWith(target: value));
  });
}
}

/// @nodoc


class BridgeEvent_ServerActivity extends BridgeEvent {
  const BridgeEvent_ServerActivity({required this.message}): super._();
  

/// TeamSpeak-style activity line.
 final  String message;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ServerActivityCopyWith<BridgeEvent_ServerActivity> get copyWith => _$BridgeEvent_ServerActivityCopyWithImpl<BridgeEvent_ServerActivity>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ServerActivity&&(identical(other.message, message) || other.message == message));
}


@override
int get hashCode => Object.hash(runtimeType,message);

@override
String toString() {
  return 'BridgeEvent.serverActivity(message: $message)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ServerActivityCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ServerActivityCopyWith(BridgeEvent_ServerActivity value, $Res Function(BridgeEvent_ServerActivity) _then) = _$BridgeEvent_ServerActivityCopyWithImpl;
@useResult
$Res call({
 String message
});




}
/// @nodoc
class _$BridgeEvent_ServerActivityCopyWithImpl<$Res>
    implements $BridgeEvent_ServerActivityCopyWith<$Res> {
  _$BridgeEvent_ServerActivityCopyWithImpl(this._self, this._then);

  final BridgeEvent_ServerActivity _self;
  final $Res Function(BridgeEvent_ServerActivity) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? message = null,}) {
  return _then(BridgeEvent_ServerActivity(
message: null == message ? _self.message : message // ignore: cast_nullable_to_non_nullable
as String,
  ));
}


}

/// @nodoc


class BridgeEvent_AudioRouteChanged extends BridgeEvent {
  const BridgeEvent_AudioRouteChanged({required this.route}): super._();
  

 final  BridgeAudioRoute route;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_AudioRouteChangedCopyWith<BridgeEvent_AudioRouteChanged> get copyWith => _$BridgeEvent_AudioRouteChangedCopyWithImpl<BridgeEvent_AudioRouteChanged>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_AudioRouteChanged&&(identical(other.route, route) || other.route == route));
}


@override
int get hashCode => Object.hash(runtimeType,route);

@override
String toString() {
  return 'BridgeEvent.audioRouteChanged(route: $route)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_AudioRouteChangedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_AudioRouteChangedCopyWith(BridgeEvent_AudioRouteChanged value, $Res Function(BridgeEvent_AudioRouteChanged) _then) = _$BridgeEvent_AudioRouteChangedCopyWithImpl;
@useResult
$Res call({
 BridgeAudioRoute route
});




}
/// @nodoc
class _$BridgeEvent_AudioRouteChangedCopyWithImpl<$Res>
    implements $BridgeEvent_AudioRouteChangedCopyWith<$Res> {
  _$BridgeEvent_AudioRouteChangedCopyWithImpl(this._self, this._then);

  final BridgeEvent_AudioRouteChanged _self;
  final $Res Function(BridgeEvent_AudioRouteChanged) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? route = null,}) {
  return _then(BridgeEvent_AudioRouteChanged(
route: null == route ? _self.route : route // ignore: cast_nullable_to_non_nullable
as BridgeAudioRoute,
  ));
}


}

/// @nodoc


class BridgeEvent_ClientMoved extends BridgeEvent {
  const BridgeEvent_ClientMoved({required this.clientId, required this.newChannelId}): super._();
  

 final  BigInt clientId;
 final  BigInt newChannelId;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ClientMovedCopyWith<BridgeEvent_ClientMoved> get copyWith => _$BridgeEvent_ClientMovedCopyWithImpl<BridgeEvent_ClientMoved>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ClientMoved&&(identical(other.clientId, clientId) || other.clientId == clientId)&&(identical(other.newChannelId, newChannelId) || other.newChannelId == newChannelId));
}


@override
int get hashCode => Object.hash(runtimeType,clientId,newChannelId);

@override
String toString() {
  return 'BridgeEvent.clientMoved(clientId: $clientId, newChannelId: $newChannelId)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ClientMovedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ClientMovedCopyWith(BridgeEvent_ClientMoved value, $Res Function(BridgeEvent_ClientMoved) _then) = _$BridgeEvent_ClientMovedCopyWithImpl;
@useResult
$Res call({
 BigInt clientId, BigInt newChannelId
});




}
/// @nodoc
class _$BridgeEvent_ClientMovedCopyWithImpl<$Res>
    implements $BridgeEvent_ClientMovedCopyWith<$Res> {
  _$BridgeEvent_ClientMovedCopyWithImpl(this._self, this._then);

  final BridgeEvent_ClientMoved _self;
  final $Res Function(BridgeEvent_ClientMoved) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? clientId = null,Object? newChannelId = null,}) {
  return _then(BridgeEvent_ClientMoved(
clientId: null == clientId ? _self.clientId : clientId // ignore: cast_nullable_to_non_nullable
as BigInt,newChannelId: null == newChannelId ? _self.newChannelId : newChannelId // ignore: cast_nullable_to_non_nullable
as BigInt,
  ));
}


}

/// @nodoc


class BridgeEvent_ClientJoined extends BridgeEvent {
  const BridgeEvent_ClientJoined({required this.clientId, required this.channelId, required this.name, required this.inputMuted, required this.outputMuted, required this.isServerQuery, required this.talkPower, required this.talkPowerGranted}): super._();
  

 final  BigInt clientId;
 final  BigInt channelId;
 final  String name;
 final  bool inputMuted;
 final  bool outputMuted;
 final  bool isServerQuery;
 final  int talkPower;
 final  bool talkPowerGranted;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ClientJoinedCopyWith<BridgeEvent_ClientJoined> get copyWith => _$BridgeEvent_ClientJoinedCopyWithImpl<BridgeEvent_ClientJoined>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ClientJoined&&(identical(other.clientId, clientId) || other.clientId == clientId)&&(identical(other.channelId, channelId) || other.channelId == channelId)&&(identical(other.name, name) || other.name == name)&&(identical(other.inputMuted, inputMuted) || other.inputMuted == inputMuted)&&(identical(other.outputMuted, outputMuted) || other.outputMuted == outputMuted)&&(identical(other.isServerQuery, isServerQuery) || other.isServerQuery == isServerQuery)&&(identical(other.talkPower, talkPower) || other.talkPower == talkPower)&&(identical(other.talkPowerGranted, talkPowerGranted) || other.talkPowerGranted == talkPowerGranted));
}


@override
int get hashCode => Object.hash(runtimeType,clientId,channelId,name,inputMuted,outputMuted,isServerQuery,talkPower,talkPowerGranted);

@override
String toString() {
  return 'BridgeEvent.clientJoined(clientId: $clientId, channelId: $channelId, name: $name, inputMuted: $inputMuted, outputMuted: $outputMuted, isServerQuery: $isServerQuery, talkPower: $talkPower, talkPowerGranted: $talkPowerGranted)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ClientJoinedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ClientJoinedCopyWith(BridgeEvent_ClientJoined value, $Res Function(BridgeEvent_ClientJoined) _then) = _$BridgeEvent_ClientJoinedCopyWithImpl;
@useResult
$Res call({
 BigInt clientId, BigInt channelId, String name, bool inputMuted, bool outputMuted, bool isServerQuery, int talkPower, bool talkPowerGranted
});




}
/// @nodoc
class _$BridgeEvent_ClientJoinedCopyWithImpl<$Res>
    implements $BridgeEvent_ClientJoinedCopyWith<$Res> {
  _$BridgeEvent_ClientJoinedCopyWithImpl(this._self, this._then);

  final BridgeEvent_ClientJoined _self;
  final $Res Function(BridgeEvent_ClientJoined) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? clientId = null,Object? channelId = null,Object? name = null,Object? inputMuted = null,Object? outputMuted = null,Object? isServerQuery = null,Object? talkPower = null,Object? talkPowerGranted = null,}) {
  return _then(BridgeEvent_ClientJoined(
clientId: null == clientId ? _self.clientId : clientId // ignore: cast_nullable_to_non_nullable
as BigInt,channelId: null == channelId ? _self.channelId : channelId // ignore: cast_nullable_to_non_nullable
as BigInt,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String,inputMuted: null == inputMuted ? _self.inputMuted : inputMuted // ignore: cast_nullable_to_non_nullable
as bool,outputMuted: null == outputMuted ? _self.outputMuted : outputMuted // ignore: cast_nullable_to_non_nullable
as bool,isServerQuery: null == isServerQuery ? _self.isServerQuery : isServerQuery // ignore: cast_nullable_to_non_nullable
as bool,talkPower: null == talkPower ? _self.talkPower : talkPower // ignore: cast_nullable_to_non_nullable
as int,talkPowerGranted: null == talkPowerGranted ? _self.talkPowerGranted : talkPowerGranted // ignore: cast_nullable_to_non_nullable
as bool,
  ));
}


}

/// @nodoc


class BridgeEvent_ClientLeft extends BridgeEvent {
  const BridgeEvent_ClientLeft({required this.clientId, required this.name}): super._();
  

 final  BigInt clientId;
 final  String name;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ClientLeftCopyWith<BridgeEvent_ClientLeft> get copyWith => _$BridgeEvent_ClientLeftCopyWithImpl<BridgeEvent_ClientLeft>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ClientLeft&&(identical(other.clientId, clientId) || other.clientId == clientId)&&(identical(other.name, name) || other.name == name));
}


@override
int get hashCode => Object.hash(runtimeType,clientId,name);

@override
String toString() {
  return 'BridgeEvent.clientLeft(clientId: $clientId, name: $name)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ClientLeftCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ClientLeftCopyWith(BridgeEvent_ClientLeft value, $Res Function(BridgeEvent_ClientLeft) _then) = _$BridgeEvent_ClientLeftCopyWithImpl;
@useResult
$Res call({
 BigInt clientId, String name
});




}
/// @nodoc
class _$BridgeEvent_ClientLeftCopyWithImpl<$Res>
    implements $BridgeEvent_ClientLeftCopyWith<$Res> {
  _$BridgeEvent_ClientLeftCopyWithImpl(this._self, this._then);

  final BridgeEvent_ClientLeft _self;
  final $Res Function(BridgeEvent_ClientLeft) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? clientId = null,Object? name = null,}) {
  return _then(BridgeEvent_ClientLeft(
clientId: null == clientId ? _self.clientId : clientId // ignore: cast_nullable_to_non_nullable
as BigInt,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String,
  ));
}


}

/// @nodoc


class BridgeEvent_ClientUpdated extends BridgeEvent {
  const BridgeEvent_ClientUpdated({required this.clientId, required this.inputMuted, required this.outputMuted, required this.isServerQuery, required this.talkPower, required this.talkPowerGranted}): super._();
  

 final  BigInt clientId;
 final  bool inputMuted;
 final  bool outputMuted;
 final  bool isServerQuery;
 final  int talkPower;
 final  bool talkPowerGranted;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ClientUpdatedCopyWith<BridgeEvent_ClientUpdated> get copyWith => _$BridgeEvent_ClientUpdatedCopyWithImpl<BridgeEvent_ClientUpdated>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ClientUpdated&&(identical(other.clientId, clientId) || other.clientId == clientId)&&(identical(other.inputMuted, inputMuted) || other.inputMuted == inputMuted)&&(identical(other.outputMuted, outputMuted) || other.outputMuted == outputMuted)&&(identical(other.isServerQuery, isServerQuery) || other.isServerQuery == isServerQuery)&&(identical(other.talkPower, talkPower) || other.talkPower == talkPower)&&(identical(other.talkPowerGranted, talkPowerGranted) || other.talkPowerGranted == talkPowerGranted));
}


@override
int get hashCode => Object.hash(runtimeType,clientId,inputMuted,outputMuted,isServerQuery,talkPower,talkPowerGranted);

@override
String toString() {
  return 'BridgeEvent.clientUpdated(clientId: $clientId, inputMuted: $inputMuted, outputMuted: $outputMuted, isServerQuery: $isServerQuery, talkPower: $talkPower, talkPowerGranted: $talkPowerGranted)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ClientUpdatedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ClientUpdatedCopyWith(BridgeEvent_ClientUpdated value, $Res Function(BridgeEvent_ClientUpdated) _then) = _$BridgeEvent_ClientUpdatedCopyWithImpl;
@useResult
$Res call({
 BigInt clientId, bool inputMuted, bool outputMuted, bool isServerQuery, int talkPower, bool talkPowerGranted
});




}
/// @nodoc
class _$BridgeEvent_ClientUpdatedCopyWithImpl<$Res>
    implements $BridgeEvent_ClientUpdatedCopyWith<$Res> {
  _$BridgeEvent_ClientUpdatedCopyWithImpl(this._self, this._then);

  final BridgeEvent_ClientUpdated _self;
  final $Res Function(BridgeEvent_ClientUpdated) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? clientId = null,Object? inputMuted = null,Object? outputMuted = null,Object? isServerQuery = null,Object? talkPower = null,Object? talkPowerGranted = null,}) {
  return _then(BridgeEvent_ClientUpdated(
clientId: null == clientId ? _self.clientId : clientId // ignore: cast_nullable_to_non_nullable
as BigInt,inputMuted: null == inputMuted ? _self.inputMuted : inputMuted // ignore: cast_nullable_to_non_nullable
as bool,outputMuted: null == outputMuted ? _self.outputMuted : outputMuted // ignore: cast_nullable_to_non_nullable
as bool,isServerQuery: null == isServerQuery ? _self.isServerQuery : isServerQuery // ignore: cast_nullable_to_non_nullable
as bool,talkPower: null == talkPower ? _self.talkPower : talkPower // ignore: cast_nullable_to_non_nullable
as int,talkPowerGranted: null == talkPowerGranted ? _self.talkPowerGranted : talkPowerGranted // ignore: cast_nullable_to_non_nullable
as bool,
  ));
}


}

/// @nodoc


class BridgeEvent_ChannelAdded extends BridgeEvent {
  const BridgeEvent_ChannelAdded({required this.id, required this.parent, required this.name, required this.order, required this.hasPassword, this.neededTalkPower}): super._();
  

 final  BigInt id;
 final  BigInt parent;
 final  String name;
 final  PlatformInt64 order;
 final  bool hasPassword;
 final  int? neededTalkPower;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ChannelAddedCopyWith<BridgeEvent_ChannelAdded> get copyWith => _$BridgeEvent_ChannelAddedCopyWithImpl<BridgeEvent_ChannelAdded>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ChannelAdded&&(identical(other.id, id) || other.id == id)&&(identical(other.parent, parent) || other.parent == parent)&&(identical(other.name, name) || other.name == name)&&(identical(other.order, order) || other.order == order)&&(identical(other.hasPassword, hasPassword) || other.hasPassword == hasPassword)&&(identical(other.neededTalkPower, neededTalkPower) || other.neededTalkPower == neededTalkPower));
}


@override
int get hashCode => Object.hash(runtimeType,id,parent,name,order,hasPassword,neededTalkPower);

@override
String toString() {
  return 'BridgeEvent.channelAdded(id: $id, parent: $parent, name: $name, order: $order, hasPassword: $hasPassword, neededTalkPower: $neededTalkPower)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ChannelAddedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ChannelAddedCopyWith(BridgeEvent_ChannelAdded value, $Res Function(BridgeEvent_ChannelAdded) _then) = _$BridgeEvent_ChannelAddedCopyWithImpl;
@useResult
$Res call({
 BigInt id, BigInt parent, String name, PlatformInt64 order, bool hasPassword, int? neededTalkPower
});




}
/// @nodoc
class _$BridgeEvent_ChannelAddedCopyWithImpl<$Res>
    implements $BridgeEvent_ChannelAddedCopyWith<$Res> {
  _$BridgeEvent_ChannelAddedCopyWithImpl(this._self, this._then);

  final BridgeEvent_ChannelAdded _self;
  final $Res Function(BridgeEvent_ChannelAdded) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? id = null,Object? parent = null,Object? name = null,Object? order = null,Object? hasPassword = null,Object? neededTalkPower = freezed,}) {
  return _then(BridgeEvent_ChannelAdded(
id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable
as BigInt,parent: null == parent ? _self.parent : parent // ignore: cast_nullable_to_non_nullable
as BigInt,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String,order: null == order ? _self.order : order // ignore: cast_nullable_to_non_nullable
as PlatformInt64,hasPassword: null == hasPassword ? _self.hasPassword : hasPassword // ignore: cast_nullable_to_non_nullable
as bool,neededTalkPower: freezed == neededTalkPower ? _self.neededTalkPower : neededTalkPower // ignore: cast_nullable_to_non_nullable
as int?,
  ));
}


}

/// @nodoc


class BridgeEvent_ChannelRemoved extends BridgeEvent {
  const BridgeEvent_ChannelRemoved({required this.id}): super._();
  

 final  BigInt id;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ChannelRemovedCopyWith<BridgeEvent_ChannelRemoved> get copyWith => _$BridgeEvent_ChannelRemovedCopyWithImpl<BridgeEvent_ChannelRemoved>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ChannelRemoved&&(identical(other.id, id) || other.id == id));
}


@override
int get hashCode => Object.hash(runtimeType,id);

@override
String toString() {
  return 'BridgeEvent.channelRemoved(id: $id)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ChannelRemovedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ChannelRemovedCopyWith(BridgeEvent_ChannelRemoved value, $Res Function(BridgeEvent_ChannelRemoved) _then) = _$BridgeEvent_ChannelRemovedCopyWithImpl;
@useResult
$Res call({
 BigInt id
});




}
/// @nodoc
class _$BridgeEvent_ChannelRemovedCopyWithImpl<$Res>
    implements $BridgeEvent_ChannelRemovedCopyWith<$Res> {
  _$BridgeEvent_ChannelRemovedCopyWithImpl(this._self, this._then);

  final BridgeEvent_ChannelRemoved _self;
  final $Res Function(BridgeEvent_ChannelRemoved) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? id = null,}) {
  return _then(BridgeEvent_ChannelRemoved(
id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable
as BigInt,
  ));
}


}

/// @nodoc


class BridgeEvent_ChannelUpdated extends BridgeEvent {
  const BridgeEvent_ChannelUpdated({required this.id, required this.name, required this.hasPassword, this.neededTalkPower}): super._();
  

 final  BigInt id;
 final  String name;
 final  bool hasPassword;
 final  int? neededTalkPower;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeEvent_ChannelUpdatedCopyWith<BridgeEvent_ChannelUpdated> get copyWith => _$BridgeEvent_ChannelUpdatedCopyWithImpl<BridgeEvent_ChannelUpdated>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeEvent_ChannelUpdated&&(identical(other.id, id) || other.id == id)&&(identical(other.name, name) || other.name == name)&&(identical(other.hasPassword, hasPassword) || other.hasPassword == hasPassword)&&(identical(other.neededTalkPower, neededTalkPower) || other.neededTalkPower == neededTalkPower));
}


@override
int get hashCode => Object.hash(runtimeType,id,name,hasPassword,neededTalkPower);

@override
String toString() {
  return 'BridgeEvent.channelUpdated(id: $id, name: $name, hasPassword: $hasPassword, neededTalkPower: $neededTalkPower)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_ChannelUpdatedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_ChannelUpdatedCopyWith(BridgeEvent_ChannelUpdated value, $Res Function(BridgeEvent_ChannelUpdated) _then) = _$BridgeEvent_ChannelUpdatedCopyWithImpl;
@useResult
$Res call({
 BigInt id, String name, bool hasPassword, int? neededTalkPower
});




}
/// @nodoc
class _$BridgeEvent_ChannelUpdatedCopyWithImpl<$Res>
    implements $BridgeEvent_ChannelUpdatedCopyWith<$Res> {
  _$BridgeEvent_ChannelUpdatedCopyWithImpl(this._self, this._then);

  final BridgeEvent_ChannelUpdated _self;
  final $Res Function(BridgeEvent_ChannelUpdated) _then;

/// Create a copy of BridgeEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? id = null,Object? name = null,Object? hasPassword = null,Object? neededTalkPower = freezed,}) {
  return _then(BridgeEvent_ChannelUpdated(
id: null == id ? _self.id : id // ignore: cast_nullable_to_non_nullable
as BigInt,name: null == name ? _self.name : name // ignore: cast_nullable_to_non_nullable
as String,hasPassword: null == hasPassword ? _self.hasPassword : hasPassword // ignore: cast_nullable_to_non_nullable
as bool,neededTalkPower: freezed == neededTalkPower ? _self.neededTalkPower : neededTalkPower // ignore: cast_nullable_to_non_nullable
as int?,
  ));
}


}

/// @nodoc
mixin _$BridgeMessageTarget {





@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeMessageTarget);
}


@override
int get hashCode => runtimeType.hashCode;

@override
String toString() {
  return 'BridgeMessageTarget()';
}


}

/// @nodoc
class $BridgeMessageTargetCopyWith<$Res>  {
$BridgeMessageTargetCopyWith(BridgeMessageTarget _, $Res Function(BridgeMessageTarget) __);
}


/// Adds pattern-matching-related methods to [BridgeMessageTarget].
extension BridgeMessageTargetPatterns on BridgeMessageTarget {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>({TResult Function( BridgeMessageTarget_Server value)?  server,TResult Function( BridgeMessageTarget_Channel value)?  channel,TResult Function( BridgeMessageTarget_Client value)?  client,TResult Function( BridgeMessageTarget_Poke value)?  poke,required TResult orElse(),}){
final _that = this;
switch (_that) {
case BridgeMessageTarget_Server() when server != null:
return server(_that);case BridgeMessageTarget_Channel() when channel != null:
return channel(_that);case BridgeMessageTarget_Client() when client != null:
return client(_that);case BridgeMessageTarget_Poke() when poke != null:
return poke(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>({required TResult Function( BridgeMessageTarget_Server value)  server,required TResult Function( BridgeMessageTarget_Channel value)  channel,required TResult Function( BridgeMessageTarget_Client value)  client,required TResult Function( BridgeMessageTarget_Poke value)  poke,}){
final _that = this;
switch (_that) {
case BridgeMessageTarget_Server():
return server(_that);case BridgeMessageTarget_Channel():
return channel(_that);case BridgeMessageTarget_Client():
return client(_that);case BridgeMessageTarget_Poke():
return poke(_that);}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>({TResult? Function( BridgeMessageTarget_Server value)?  server,TResult? Function( BridgeMessageTarget_Channel value)?  channel,TResult? Function( BridgeMessageTarget_Client value)?  client,TResult? Function( BridgeMessageTarget_Poke value)?  poke,}){
final _that = this;
switch (_that) {
case BridgeMessageTarget_Server() when server != null:
return server(_that);case BridgeMessageTarget_Channel() when channel != null:
return channel(_that);case BridgeMessageTarget_Client() when client != null:
return client(_that);case BridgeMessageTarget_Poke() when poke != null:
return poke(_that);case _:
  return null;

}
}
/// A variant of `when` that fallback to an `orElse` callback.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeWhen<TResult extends Object?>({TResult Function()?  server,TResult Function()?  channel,TResult Function( BigInt field0)?  client,TResult Function( BigInt field0)?  poke,required TResult orElse(),}) {final _that = this;
switch (_that) {
case BridgeMessageTarget_Server() when server != null:
return server();case BridgeMessageTarget_Channel() when channel != null:
return channel();case BridgeMessageTarget_Client() when client != null:
return client(_that.field0);case BridgeMessageTarget_Poke() when poke != null:
return poke(_that.field0);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// As opposed to `map`, this offers destructuring.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case Subclass2(:final field2):
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult when<TResult extends Object?>({required TResult Function()  server,required TResult Function()  channel,required TResult Function( BigInt field0)  client,required TResult Function( BigInt field0)  poke,}) {final _that = this;
switch (_that) {
case BridgeMessageTarget_Server():
return server();case BridgeMessageTarget_Channel():
return channel();case BridgeMessageTarget_Client():
return client(_that.field0);case BridgeMessageTarget_Poke():
return poke(_that.field0);}
}
/// A variant of `when` that fallback to returning `null`
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case Subclass(:final field):
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? whenOrNull<TResult extends Object?>({TResult? Function()?  server,TResult? Function()?  channel,TResult? Function( BigInt field0)?  client,TResult? Function( BigInt field0)?  poke,}) {final _that = this;
switch (_that) {
case BridgeMessageTarget_Server() when server != null:
return server();case BridgeMessageTarget_Channel() when channel != null:
return channel();case BridgeMessageTarget_Client() when client != null:
return client(_that.field0);case BridgeMessageTarget_Poke() when poke != null:
return poke(_that.field0);case _:
  return null;

}
}

}

/// @nodoc


class BridgeMessageTarget_Server extends BridgeMessageTarget {
  const BridgeMessageTarget_Server(): super._();
  






@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeMessageTarget_Server);
}


@override
int get hashCode => runtimeType.hashCode;

@override
String toString() {
  return 'BridgeMessageTarget.server()';
}


}




/// @nodoc


class BridgeMessageTarget_Channel extends BridgeMessageTarget {
  const BridgeMessageTarget_Channel(): super._();
  






@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeMessageTarget_Channel);
}


@override
int get hashCode => runtimeType.hashCode;

@override
String toString() {
  return 'BridgeMessageTarget.channel()';
}


}




/// @nodoc


class BridgeMessageTarget_Client extends BridgeMessageTarget {
  const BridgeMessageTarget_Client(this.field0): super._();
  

 final  BigInt field0;

/// Create a copy of BridgeMessageTarget
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeMessageTarget_ClientCopyWith<BridgeMessageTarget_Client> get copyWith => _$BridgeMessageTarget_ClientCopyWithImpl<BridgeMessageTarget_Client>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeMessageTarget_Client&&(identical(other.field0, field0) || other.field0 == field0));
}


@override
int get hashCode => Object.hash(runtimeType,field0);

@override
String toString() {
  return 'BridgeMessageTarget.client(field0: $field0)';
}


}

/// @nodoc
abstract mixin class $BridgeMessageTarget_ClientCopyWith<$Res> implements $BridgeMessageTargetCopyWith<$Res> {
  factory $BridgeMessageTarget_ClientCopyWith(BridgeMessageTarget_Client value, $Res Function(BridgeMessageTarget_Client) _then) = _$BridgeMessageTarget_ClientCopyWithImpl;
@useResult
$Res call({
 BigInt field0
});




}
/// @nodoc
class _$BridgeMessageTarget_ClientCopyWithImpl<$Res>
    implements $BridgeMessageTarget_ClientCopyWith<$Res> {
  _$BridgeMessageTarget_ClientCopyWithImpl(this._self, this._then);

  final BridgeMessageTarget_Client _self;
  final $Res Function(BridgeMessageTarget_Client) _then;

/// Create a copy of BridgeMessageTarget
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? field0 = null,}) {
  return _then(BridgeMessageTarget_Client(
null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
as BigInt,
  ));
}


}

/// @nodoc


class BridgeMessageTarget_Poke extends BridgeMessageTarget {
  const BridgeMessageTarget_Poke(this.field0): super._();
  

 final  BigInt field0;

/// Create a copy of BridgeMessageTarget
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$BridgeMessageTarget_PokeCopyWith<BridgeMessageTarget_Poke> get copyWith => _$BridgeMessageTarget_PokeCopyWithImpl<BridgeMessageTarget_Poke>(this, _$identity);



@override
bool operator ==(Object other) {
  return identical(this, other) || (other.runtimeType == runtimeType&&other is BridgeMessageTarget_Poke&&(identical(other.field0, field0) || other.field0 == field0));
}


@override
int get hashCode => Object.hash(runtimeType,field0);

@override
String toString() {
  return 'BridgeMessageTarget.poke(field0: $field0)';
}


}

/// @nodoc
abstract mixin class $BridgeMessageTarget_PokeCopyWith<$Res> implements $BridgeMessageTargetCopyWith<$Res> {
  factory $BridgeMessageTarget_PokeCopyWith(BridgeMessageTarget_Poke value, $Res Function(BridgeMessageTarget_Poke) _then) = _$BridgeMessageTarget_PokeCopyWithImpl;
@useResult
$Res call({
 BigInt field0
});




}
/// @nodoc
class _$BridgeMessageTarget_PokeCopyWithImpl<$Res>
    implements $BridgeMessageTarget_PokeCopyWith<$Res> {
  _$BridgeMessageTarget_PokeCopyWithImpl(this._self, this._then);

  final BridgeMessageTarget_Poke _self;
  final $Res Function(BridgeMessageTarget_Poke) _then;

/// Create a copy of BridgeMessageTarget
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') $Res call({Object? field0 = null,}) {
  return _then(BridgeMessageTarget_Poke(
null == field0 ? _self.field0 : field0 // ignore: cast_nullable_to_non_nullable
as BigInt,
  ));
}


}

// dart format on
