// FILE: properties.kt

@NativeCoroutines
val topLevelFlow: Flow<String>
  field = flowOf<String>(value = "OK1")
  get

@NativeCoroutines
val topLevelSharedFlow: SharedFlow<String>
  field = MutableSharedFlow<String>(replay = 1).apply<MutableSharedFlow<String>>(block = local fun MutableSharedFlow<String>.<anonymous>() {
    $this$apply.tryEmit(value = "OK2") /*~> Unit */
  }
)
  get

@NativeCoroutines
val topLevelStateFlow: StateFlow<String>
  field = MutableStateFlow<String>(value = "OK3")
  get

@NativeCoroutines
val topLevelMutableStateFlow: MutableStateFlow<String>
  field = MutableStateFlow<String>(value = "OK4")
  get

@NativeCoroutines
val nullableFlowValue: Flow<String?>
  field = flowOf<String?>(value = null)
  get

@NativeCoroutines
val nullableSharedFlowValue: SharedFlow<String?>
  field = MutableSharedFlow<String?>(replay = 1).apply<MutableSharedFlow<String?>>(block = local fun MutableSharedFlow<String?>.<anonymous>() {
    $this$apply.tryEmit(value = null) /*~> Unit */
  }
)
  get

@NativeCoroutines
val nullableStateFlowValue: StateFlow<String?>
  field = MutableStateFlow<String?>(value = null)
  get

@NativeCoroutinesState
val stateProperty: StateFlow<String>
  field = MutableStateFlow<String>(value = "OK23")
  get

@NativeCoroutinesState
val mutableStateProperty: MutableStateFlow<String>
  field = MutableStateFlow<String>(value = "OK24")
  get

@NativeCoroutinesRefined
val refinedFlow: Flow<String>
  field = flowOf<String>(value = "OK25")
  get

@NativeCoroutinesRefinedState
val refinedState: StateFlow<String>
  field = MutableStateFlow<String>(value = "OK26")
  get

@NativeCoroutinesState
val mutableNullableStateProperty: MutableStateFlow<String>?
  field = MutableStateFlow<String>(value = "OK27")
  get

class MyClass28 : MyInterface28 {
  @NativeCoroutines
  override val interfaceFlowValue: Flow<String>
    field = flowOf<String>(value = "OK28")
    override get

  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

}

class MyFlow29<T1 : Any?, T2 : Any?> : Flow<T2?> {
  private /* final field */ val $$delegate_0: Flow<T2?> = flowOf<T2?>(value = null)
  constructor(value1: T1, value2: T2) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override suspend fun collect(collector: FlowCollector<T2?>) {
    <this>.#$$delegate_0.collect(collector = collector)
  }

}

data class MyGenericClass1<T : Any?> {
  val value: T
    field = value
    get

  constructor(value: T) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  operator fun component1(): T {
    return <this>.#value
  }

  fun copy(value: T = <this>.#value): MyGenericClass1<T> {
    return MyGenericClass1<T>(value = value)
  }

  override operator fun equals(other: Any?): Boolean {
    when {
      EQEQEQ(arg0 = <this>, arg1 = other) -> return true
    }
    when {
      other !is MyGenericClass1<T> -> return false
    }
    val tmp_0: MyGenericClass1<T> = other as MyGenericClass1<T>
    when {
      EQEQ(arg0 = <this>.#value, arg1 = tmp_0.#value).not() -> return false
    }
    return true
  }

  override fun hashCode(): Int {
    return when {
      EQEQ(arg0 = <this>.#value, arg1 = null) -> 0
      else -> <this>.#value.hashCode()
    }
  }

  override fun toString(): String {
    return "MyGenericClass1(" + "value=" + <this>.#value + ")"
  }

}

class MyGenericClass2<T : Any?> {
  private val value: T
    field = value
    private get

  @NativeCoroutines
  val genericFlow: Flow<T>
    field = flowOf<T>(value = <this>.<get-value>())
    get

  @NativeCoroutines
  val genericSharedFlow: SharedFlow<T>
    field = MutableSharedFlow<T>(replay = 1).apply<MutableSharedFlow<T>>(block = local fun MutableSharedFlow<T>.<anonymous>() {
      $this$apply.tryEmit(value = <this>.<get-value>()) /*~> Unit */
    }
)
    get

  @NativeCoroutines
  val genericStateFlow: StateFlow<T>
    field = MutableStateFlow<T>(value = <this>.<get-value>())
    get

  constructor(value: T) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  @ObjCName(name = "genericFlow")
  val genericFlowNative: Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
    get(): Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
      val tmp_1: CoroutineScope? = null
      val tmp_2: Flow<T> = <this>.<get-genericFlow>()
      return tmp_2.asNativeFlow<T>(scope = tmp_1)
    }

  @ObjCName(name = "genericSharedFlow")
  val genericSharedFlowNative: Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
    get(): Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
      val tmp_3: CoroutineScope? = null
      val tmp_4: SharedFlow<T> = <this>.<get-genericSharedFlow>()
      return tmp_4.asNativeFlow<T>(scope = tmp_3)
    }

  val genericSharedFlowReplayCache: List<T>
    get(): List<T> {
      val tmp_5: SharedFlow<T> = <this>.<get-genericSharedFlow>()
      return tmp_5.<get-replayCache>()
    }

  @ObjCName(name = "genericStateFlow")
  val genericStateFlowNative: Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
    get(): Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
      val tmp_6: CoroutineScope? = null
      val tmp_7: StateFlow<T> = <this>.<get-genericStateFlow>()
      return tmp_7.asNativeFlow<T>(scope = tmp_6)
    }

  val genericStateFlowValue: T
    get(): T {
      val tmp_8: StateFlow<T> = <this>.<get-genericStateFlow>()
      return tmp_8.<get-value>()
    }

}

interface MyInterface28 {
  @ObjCName(name = "interfaceFlowValue")
  final val interfaceFlowValueNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
    final get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
      val tmp_9: CoroutineScope? = null
      val tmp_10: Flow<String> = <this>.<get-interfaceFlowValue>()
      return tmp_10.asNativeFlow<String>(scope = tmp_9)
    }

  @NativeCoroutines
  abstract val interfaceFlowValue: Flow<String>
    abstract get

}

fun box(): String {
  return runBoxTest(action = local suspend fun BoxTest.<anonymous>() {
    $this$runBoxTest.collect<String>(nativeFlow = <get-topLevelFlowNative>())
    $this$runBoxTest.collect<String>(nativeFlow = <get-topLevelSharedFlowNative>(), maxValues = 1)
    $this$runBoxTest.values<String>(values = <get-topLevelSharedFlowReplayCache>())
    $this$runBoxTest.collect<String>(nativeFlow = <get-topLevelStateFlowNative>(), maxValues = 1)
    $this$runBoxTest.value<String>(value = <get-topLevelStateFlowValue>())
    $this$runBoxTest.collect<String>(nativeFlow = <get-topLevelMutableStateFlowNative>(), maxValues = 1)
    $this$runBoxTest.value<String>(value = <get-topLevelMutableStateFlowValue>())
    $this$runBoxTest.collect<String?>(nativeFlow = <get-nullableFlowValueNative>())
    $this$runBoxTest.collect<String?>(nativeFlow = <get-nullableSharedFlowValueNative>(), maxValues = 1)
    $this$runBoxTest.values<String?>(values = <get-nullableSharedFlowValueReplayCache>())
    $this$runBoxTest.collect<String?>(nativeFlow = <get-nullableStateFlowValueNative>(), maxValues = 1)
    $this$runBoxTest.value<String?>(value = <get-nullableStateFlowValueValue>())
    $this$runBoxTest.value<Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?>(value = <get-nullableFlowNative>())
    $this$runBoxTest.value<Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?>(value = <get-nullableSharedFlowNative>())
    $this$runBoxTest.value<List<String>?>(value = <get-nullableSharedFlowReplayCache>())
    $this$runBoxTest.value<Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?>(value = <get-nullableStateFlowPropertyNative>())
    $this$runBoxTest.value<String?>(value = <get-nullableStateFlowPropertyValue>())
    $this$runBoxTest.value<Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?>(value = <get-nullableFlowAndValueNative>())
    $this$runBoxTest.value<Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?>(value = <get-nullableSharedFlowAndValueNative>())
    $this$runBoxTest.value<List<String?>?>(value = <get-nullableSharedFlowAndValueReplayCache>())
    $this$runBoxTest.value<Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?>(value = <get-nullableStateFlowAndValueNative>())
    $this$runBoxTest.value<String?>(value = <get-nullableStateFlowAndValueValue>())
    $this$runBoxTest.collect<String>(nativeFlow = MyGenericClass1<String>(value = "OK14").<get-genericFlowNative><String>())
    $this$runBoxTest.collect<String>(nativeFlow = MyGenericClass1<String>(value = "OK15").<get-genericSharedFlowNative><String>(), maxValues = 1)
    $this$runBoxTest.values<String>(values = MyGenericClass1<String>(value = "OK15").<get-genericSharedFlowReplayCache><String>())
    $this$runBoxTest.collect<String>(nativeFlow = MyGenericClass1<String>(value = "OK16").<get-genericStateFlowNative><String>(), maxValues = 1)
    $this$runBoxTest.value<String>(value = MyGenericClass1<String>(value = "OK16").<get-genericStateFlowValue><String>())
    $this$runBoxTest.collect<String>(nativeFlow = MyGenericClass2<String>(value = "OK17").<get-genericFlowNative>())
    $this$runBoxTest.collect<String>(nativeFlow = MyGenericClass2<String>(value = "OK18").<get-genericSharedFlowNative>(), maxValues = 1)
    $this$runBoxTest.values<String>(values = MyGenericClass2<String>(value = "OK18").<get-genericSharedFlowReplayCache>())
    $this$runBoxTest.collect<String>(nativeFlow = MyGenericClass2<String>(value = "OK19").<get-genericStateFlowNative>(), maxValues = 1)
    $this$runBoxTest.value<String>(value = MyGenericClass2<String>(value = "OK19").<get-genericStateFlowValue>())
    $this$runBoxTest.collect<String>(nativeFlow = "OK20".<get-extensionFlowNative>())
    $this$runBoxTest.collect<String>(nativeFlow = "OK21".<get-extensionSharedFlowNative>(), maxValues = 1)
    $this$runBoxTest.values<String>(values = "OK21".<get-extensionSharedFlowReplayCache>())
    $this$runBoxTest.collect<String>(nativeFlow = "OK22".<get-extensionStateFlowNative>(), maxValues = 1)
    $this$runBoxTest.value<String>(value = "OK22".<get-extensionStateFlowValue>())
    $this$runBoxTest.value<String>(value = <get-statePropertyValue>())
    $this$runBoxTest.collect<String>(nativeFlow = <get-statePropertyFlow>(), maxValues = 1)
    $this$runBoxTest.value<String>(value = <get-mutableStatePropertyValue>())
    $this$runBoxTest.collect<String>(nativeFlow = <get-mutableStatePropertyFlow>(), maxValues = 1)
    $this$runBoxTest.collect<String>(nativeFlow = <get-refinedFlowNative>())
    $this$runBoxTest.value<String>(value = <get-refinedStateValue>())
    $this$runBoxTest.collect<String>(nativeFlow = <get-refinedStateFlow>(), maxValues = 1)
    $this$runBoxTest.value<String?>(value = <get-mutableNullableStatePropertyValue>())
    $this$runBoxTest.collect<String>(nativeFlow = CHECK_NOT_NULL<Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>>(arg0 = <get-mutableNullableStatePropertyFlow>()), maxValues = 1)
    $this$runBoxTest.collect<String>(nativeFlow = MyClass28().<get-interfaceFlowValueNative>())
    $this$runBoxTest.collect<String?>(nativeFlow = <get-customFlowValueNative>())
  }
)
}

@NativeCoroutines
val customFlowValue: MyFlow29<Int, String>
  get(): MyFlow29<Int, String> {
    return MyFlow29<Int, String>(value1 = 29, value2 = "OK29")
  }

@NativeCoroutines
val String.extensionFlow: Flow<String>
  get(): Flow<String> {
    return flowOf<String>(value = <this>)
  }

@NativeCoroutines
val String.extensionSharedFlow: SharedFlow<String>
  get(): SharedFlow<String> {
    return MutableSharedFlow<String>(replay = 1).apply<MutableSharedFlow<String>>(block = local fun MutableSharedFlow<String>.<anonymous>() {
      $this$apply.tryEmit(value = <this>) /*~> Unit */
    }
)
  }

@NativeCoroutines
val String.extensionStateFlow: StateFlow<String>
  get(): StateFlow<String> {
    return MutableStateFlow<String>(value = <this>)
  }

@NativeCoroutines
val <T : Any?> MyGenericClass1<T>.genericFlow: Flow<T>
  get(): Flow<T> {
    return flowOf<T>(value = <this>.<get-value>())
  }

@NativeCoroutines
val <T : Any?> MyGenericClass1<T>.genericSharedFlow: SharedFlow<T>
  get(): SharedFlow<T> {
    return MutableSharedFlow<T>(replay = 1).apply<MutableSharedFlow<T>>(block = local fun MutableSharedFlow<T>.<anonymous>() {
      $this$apply.tryEmit(value = <this>.<get-value>()) /*~> Unit */
    }
)
  }

@NativeCoroutines
val <T : Any?> MyGenericClass1<T>.genericStateFlow: StateFlow<T>
  get(): StateFlow<T> {
    return MutableStateFlow<T>(value = <this>.<get-value>())
  }

@NativeCoroutines
val nullableFlow: Flow<String>?
  get(): Flow<String>? {
    return null
  }

@NativeCoroutines
val nullableFlowAndValue: Flow<String?>?
  get(): Flow<String?>? {
    return null
  }

@NativeCoroutines
val nullableSharedFlow: SharedFlow<String>?
  get(): SharedFlow<String>? {
    return null
  }

@NativeCoroutines
val nullableSharedFlowAndValue: SharedFlow<String?>?
  get(): SharedFlow<String?>? {
    return null
  }

@NativeCoroutines
val nullableStateFlowAndValue: StateFlow<String?>?
  get(): StateFlow<String?>? {
    return null
  }

@NativeCoroutines
val nullableStateFlowProperty: StateFlow<String>?
  get(): StateFlow<String>? {
    return null
  }

// FILE: __GENERATED DECLARATIONS__.kt

var topLevelMutableStateFlowValue: String
  get(): String {
    val tmp_0: MutableStateFlow<String> = <get-topLevelMutableStateFlow>()
    return tmp_0.<get-value>()
  }
  set(value: String) {
    return <get-topLevelMutableStateFlow>().<set-value>(<set-?> = value)
  }

@ObjCName(name = "mutableStateProperty")
var mutableStatePropertyValue: String
  get(): String {
    val tmp_1: MutableStateFlow<String> = <get-mutableStateProperty>()
    return tmp_1.<get-value>()
  }
  set(value: String) {
    return <get-mutableStateProperty>().<set-value>(<set-?> = value)
  }

@ObjCName(name = "customFlowValue")
val customFlowValueNative: Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_2: CoroutineScope? = null
    val tmp_3: MyFlow29<Int, String> = <get-customFlowValue>()
    return tmp_3.asNativeFlow<String?>(scope = tmp_2)
  }

@ObjCName(name = "extensionFlow")
val String.extensionFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_4: CoroutineScope? = null
    val tmp_5: Flow<String> = <this>.<get-extensionFlow>()
    return tmp_5.asNativeFlow<String>(scope = tmp_4)
  }

@ObjCName(name = "extensionSharedFlow")
val String.extensionSharedFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_6: CoroutineScope? = null
    val tmp_7: SharedFlow<String> = <this>.<get-extensionSharedFlow>()
    return tmp_7.asNativeFlow<String>(scope = tmp_6)
  }

val String.extensionSharedFlowReplayCache: List<String>
  get(): List<String> {
    val tmp_8: SharedFlow<String> = <this>.<get-extensionSharedFlow>()
    return tmp_8.<get-replayCache>()
  }

@ObjCName(name = "extensionStateFlow")
val String.extensionStateFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_9: CoroutineScope? = null
    val tmp_10: StateFlow<String> = <this>.<get-extensionStateFlow>()
    return tmp_10.asNativeFlow<String>(scope = tmp_9)
  }

val String.extensionStateFlowValue: String
  get(): String {
    val tmp_11: StateFlow<String> = <this>.<get-extensionStateFlow>()
    return tmp_11.<get-value>()
  }

@ObjCName(name = "genericFlow")
val <T : Any?> MyGenericClass1<T>.genericFlowNative: Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_12: CoroutineScope? = null
    val tmp_13: Flow<T> = <this>.<get-genericFlow><T>()
    return tmp_13.asNativeFlow<T>(scope = tmp_12)
  }

@ObjCName(name = "genericSharedFlow")
val <T : Any?> MyGenericClass1<T>.genericSharedFlowNative: Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_14: CoroutineScope? = null
    val tmp_15: SharedFlow<T> = <this>.<get-genericSharedFlow><T>()
    return tmp_15.asNativeFlow<T>(scope = tmp_14)
  }

val <T : Any?> MyGenericClass1<T>.genericSharedFlowReplayCache: List<T>
  get(): List<T> {
    val tmp_16: SharedFlow<T> = <this>.<get-genericSharedFlow><T>()
    return tmp_16.<get-replayCache>()
  }

@ObjCName(name = "genericStateFlow")
val <T : Any?> MyGenericClass1<T>.genericStateFlowNative: Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<T, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_17: CoroutineScope? = null
    val tmp_18: StateFlow<T> = <this>.<get-genericStateFlow><T>()
    return tmp_18.asNativeFlow<T>(scope = tmp_17)
  }

val <T : Any?> MyGenericClass1<T>.genericStateFlowValue: T
  get(): T {
    val tmp_19: StateFlow<T> = <this>.<get-genericStateFlow><T>()
    return tmp_19.<get-value>()
  }

val mutableNullableStatePropertyFlow: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>? {
    val tmp_20: CoroutineScope? = null
    val tmp_21: MutableStateFlow<String>? = <get-mutableNullableStateProperty>()
    return when {
      EQEQ(arg0 = tmp_21, arg1 = null) -> null
      else -> tmp_21.asNativeFlow<String>(scope = tmp_20)
    }
  }

@ObjCName(name = "mutableNullableStateProperty")
val mutableNullableStatePropertyValue: String?
  get(): String? {
    val tmp_22: MutableStateFlow<String>? = <get-mutableNullableStateProperty>()
    return when {
      EQEQ(arg0 = tmp_22, arg1 = null) -> null
      else -> tmp_22.<get-value>()
    }
  }

val mutableStatePropertyFlow: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_23: CoroutineScope? = null
    val tmp_24: MutableStateFlow<String> = <get-mutableStateProperty>()
    return tmp_24.asNativeFlow<String>(scope = tmp_23)
  }

@ObjCName(name = "nullableFlowAndValue")
val nullableFlowAndValueNative: Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?
  get(): Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>? {
    val tmp_25: CoroutineScope? = null
    val tmp_26: Flow<String?>? = <get-nullableFlowAndValue>()
    return when {
      EQEQ(arg0 = tmp_26, arg1 = null) -> null
      else -> tmp_26.asNativeFlow<String?>(scope = tmp_25)
    }
  }

@ObjCName(name = "nullableFlow")
val nullableFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>? {
    val tmp_27: CoroutineScope? = null
    val tmp_28: Flow<String>? = <get-nullableFlow>()
    return when {
      EQEQ(arg0 = tmp_28, arg1 = null) -> null
      else -> tmp_28.asNativeFlow<String>(scope = tmp_27)
    }
  }

@ObjCName(name = "nullableFlowValue")
val nullableFlowValueNative: Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_29: CoroutineScope? = null
    val tmp_30: Flow<String?> = <get-nullableFlowValue>()
    return tmp_30.asNativeFlow<String?>(scope = tmp_29)
  }

@ObjCName(name = "nullableSharedFlowAndValue")
val nullableSharedFlowAndValueNative: Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?
  get(): Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>? {
    val tmp_31: CoroutineScope? = null
    val tmp_32: SharedFlow<String?>? = <get-nullableSharedFlowAndValue>()
    return when {
      EQEQ(arg0 = tmp_32, arg1 = null) -> null
      else -> tmp_32.asNativeFlow<String?>(scope = tmp_31)
    }
  }

val nullableSharedFlowAndValueReplayCache: List<String?>?
  get(): List<String?>? {
    val tmp_33: SharedFlow<String?>? = <get-nullableSharedFlowAndValue>()
    return when {
      EQEQ(arg0 = tmp_33, arg1 = null) -> null
      else -> tmp_33.<get-replayCache>()
    }
  }

@ObjCName(name = "nullableSharedFlow")
val nullableSharedFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>? {
    val tmp_34: CoroutineScope? = null
    val tmp_35: SharedFlow<String>? = <get-nullableSharedFlow>()
    return when {
      EQEQ(arg0 = tmp_35, arg1 = null) -> null
      else -> tmp_35.asNativeFlow<String>(scope = tmp_34)
    }
  }

val nullableSharedFlowReplayCache: List<String>?
  get(): List<String>? {
    val tmp_36: SharedFlow<String>? = <get-nullableSharedFlow>()
    return when {
      EQEQ(arg0 = tmp_36, arg1 = null) -> null
      else -> tmp_36.<get-replayCache>()
    }
  }

@ObjCName(name = "nullableSharedFlowValue")
val nullableSharedFlowValueNative: Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_37: CoroutineScope? = null
    val tmp_38: SharedFlow<String?> = <get-nullableSharedFlowValue>()
    return tmp_38.asNativeFlow<String?>(scope = tmp_37)
  }

val nullableSharedFlowValueReplayCache: List<String?>
  get(): List<String?> {
    val tmp_39: SharedFlow<String?> = <get-nullableSharedFlowValue>()
    return tmp_39.<get-replayCache>()
  }

@ObjCName(name = "nullableStateFlowAndValue")
val nullableStateFlowAndValueNative: Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?
  get(): Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>? {
    val tmp_40: CoroutineScope? = null
    val tmp_41: StateFlow<String?>? = <get-nullableStateFlowAndValue>()
    return when {
      EQEQ(arg0 = tmp_41, arg1 = null) -> null
      else -> tmp_41.asNativeFlow<String?>(scope = tmp_40)
    }
  }

val nullableStateFlowAndValueValue: String?
  get(): String? {
    val tmp_42: StateFlow<String?>? = <get-nullableStateFlowAndValue>()
    return when {
      EQEQ(arg0 = tmp_42, arg1 = null) -> null
      else -> tmp_42.<get-value>()
    }
  }

@ObjCName(name = "nullableStateFlowProperty")
val nullableStateFlowPropertyNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>?
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>? {
    val tmp_43: CoroutineScope? = null
    val tmp_44: StateFlow<String>? = <get-nullableStateFlowProperty>()
    return when {
      EQEQ(arg0 = tmp_44, arg1 = null) -> null
      else -> tmp_44.asNativeFlow<String>(scope = tmp_43)
    }
  }

val nullableStateFlowPropertyValue: String?
  get(): String? {
    val tmp_45: StateFlow<String>? = <get-nullableStateFlowProperty>()
    return when {
      EQEQ(arg0 = tmp_45, arg1 = null) -> null
      else -> tmp_45.<get-value>()
    }
  }

@ObjCName(name = "nullableStateFlowValue")
val nullableStateFlowValueNative: Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String?, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_46: CoroutineScope? = null
    val tmp_47: StateFlow<String?> = <get-nullableStateFlowValue>()
    return tmp_47.asNativeFlow<String?>(scope = tmp_46)
  }

val nullableStateFlowValueValue: String?
  get(): String? {
    val tmp_48: StateFlow<String?> = <get-nullableStateFlowValue>()
    return tmp_48.<get-value>()
  }

@ObjCName(name = "refinedFlow")
@ShouldRefineInSwift
val refinedFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_49: CoroutineScope? = null
    val tmp_50: Flow<String> = <get-refinedFlow>()
    return tmp_50.asNativeFlow<String>(scope = tmp_49)
  }

@ShouldRefineInSwift
val refinedStateFlow: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_51: CoroutineScope? = null
    val tmp_52: StateFlow<String> = <get-refinedState>()
    return tmp_52.asNativeFlow<String>(scope = tmp_51)
  }

@ObjCName(name = "refinedState")
@ShouldRefineInSwift
val refinedStateValue: String
  get(): String {
    val tmp_53: StateFlow<String> = <get-refinedState>()
    return tmp_53.<get-value>()
  }

val statePropertyFlow: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_54: CoroutineScope? = null
    val tmp_55: StateFlow<String> = <get-stateProperty>()
    return tmp_55.asNativeFlow<String>(scope = tmp_54)
  }

@ObjCName(name = "stateProperty")
val statePropertyValue: String
  get(): String {
    val tmp_56: StateFlow<String> = <get-stateProperty>()
    return tmp_56.<get-value>()
  }

@ObjCName(name = "topLevelFlow")
val topLevelFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_57: CoroutineScope? = null
    val tmp_58: Flow<String> = <get-topLevelFlow>()
    return tmp_58.asNativeFlow<String>(scope = tmp_57)
  }

@ObjCName(name = "topLevelMutableStateFlow")
val topLevelMutableStateFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_59: CoroutineScope? = null
    val tmp_60: MutableStateFlow<String> = <get-topLevelMutableStateFlow>()
    return tmp_60.asNativeFlow<String>(scope = tmp_59)
  }

@ObjCName(name = "topLevelSharedFlow")
val topLevelSharedFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_61: CoroutineScope? = null
    val tmp_62: SharedFlow<String> = <get-topLevelSharedFlow>()
    return tmp_62.asNativeFlow<String>(scope = tmp_61)
  }

val topLevelSharedFlowReplayCache: List<String>
  get(): List<String> {
    val tmp_63: SharedFlow<String> = <get-topLevelSharedFlow>()
    return tmp_63.<get-replayCache>()
  }

@ObjCName(name = "topLevelStateFlow")
val topLevelStateFlowNative: Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>>
  get(): Function3<@ParameterName(name = "onItem") Function3<String, Function0<Unit>, Unit, Unit>, @ParameterName(name = "onComplete") Function2<Throwable?, Unit, Unit>, @ParameterName(name = "onCancelled") Function2<Throwable, Unit, Unit>, Function0<Unit>> {
    val tmp_64: CoroutineScope? = null
    val tmp_65: StateFlow<String> = <get-topLevelStateFlow>()
    return tmp_65.asNativeFlow<String>(scope = tmp_64)
  }

val topLevelStateFlowValue: String
  get(): String {
    val tmp_66: StateFlow<String> = <get-topLevelStateFlow>()
    return tmp_66.<get-value>()
  }
