// 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_SnapshotChanged value)?  snapshotChanged,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,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_SnapshotChanged() when snapshotChanged != null:
return snapshotChanged(_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 _:
  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_SnapshotChanged value)  snapshotChanged,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,}){
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_SnapshotChanged():
return snapshotChanged(_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);}
}
/// 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_SnapshotChanged value)?  snapshotChanged,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,}){
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_SnapshotChanged() when snapshotChanged != null:
return snapshotChanged(_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 _:
  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( int channels,  int clients)?  snapshotChanged,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,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_SnapshotChanged() when snapshotChanged != null:
return snapshotChanged(_that.channels,_that.clients);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 _:
  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( int channels,  int clients)  snapshotChanged,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,}) {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_SnapshotChanged():
return snapshotChanged(_that.channels,_that.clients);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);}
}
/// 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( int channels,  int clients)?  snapshotChanged,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,}) {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_SnapshotChanged() when snapshotChanged != null:
return snapshotChanged(_that.channels,_that.clients);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 _:
  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_SnapshotChanged extends BridgeEvent {
  const BridgeEvent_SnapshotChanged({required this.channels, required this.clients}): super._();
  

/// Latest channel count.
 final  int channels;
/// Latest client count.
 final  int clients;

/// 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_SnapshotChangedCopyWith<BridgeEvent_SnapshotChanged> get copyWith => _$BridgeEvent_SnapshotChangedCopyWithImpl<BridgeEvent_SnapshotChanged>(this, _$identity);



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


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

@override
String toString() {
  return 'BridgeEvent.snapshotChanged(channels: $channels, clients: $clients)';
}


}

/// @nodoc
abstract mixin class $BridgeEvent_SnapshotChangedCopyWith<$Res> implements $BridgeEventCopyWith<$Res> {
  factory $BridgeEvent_SnapshotChangedCopyWith(BridgeEvent_SnapshotChanged value, $Res Function(BridgeEvent_SnapshotChanged) _then) = _$BridgeEvent_SnapshotChangedCopyWithImpl;
@useResult
$Res call({
 int channels, int clients
});




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

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

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


}

/// @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._();
  

/// The new audio route.
 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
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
