// Generated from "j2ktnewobjcname/HiddenFromObjCTypes.java"
@file:OptIn(ExperimentalObjCRefinement::class)
@file:Suppress(
 "ALWAYS_NULL",
 "PARAMETER_NAME_CHANGED_ON_OVERRIDE",
 "SENSELESS_COMPARISON",
 "UNCHECKED_CAST",
 "UNNECESSARY_LATEINIT",
 "UNNECESSARY_NOT_NULL_ASSERTION",
 "UNREACHABLE_CODE",
 "UNUSED_ANONYMOUS_PARAMETER",
 "UNUSED_PARAMETER",
 "UNUSED_VARIABLE",
 "USELESS_CAST",
 "VARIABLE_IN_SINGLETON_WITHOUT_THREAD_LOCAL",
 "VARIABLE_WITH_REDUNDANT_INITIALIZER",
 "REDUNDANT_ELSE_IN_WHEN")

package j2ktnewobjcname

import javaemul.lang.*
import java.io.IOException
import java.io.Writer
import java.lang.AssertionError
import java.lang.RuntimeException
import kotlin.Char
import kotlin.CharSequence
import kotlin.Int
import kotlin.OptIn
import kotlin.String
import kotlin.Suppress
import kotlin.experimental.ExperimentalObjCRefinement
import kotlin.jvm.JvmField
import kotlin.jvm.JvmStatic
import kotlin.jvm.Throws
import kotlin.native.HiddenFromObjC
import kotlin.text.Appendable
import kotlin.text.StringBuilder

class HiddenFromObjCTypes {
 companion object {
  @JvmField
  @HiddenFromObjC
  var appendable: Appendable? = null

  @JvmField
  @HiddenFromObjC
  var stringBuilder: StringBuilder? = null

  @JvmField
  @HiddenFromObjC
  var writer: Writer? = null

  @JvmStatic
  @HiddenFromObjC
  fun returnsStringBuilder(i: Int): StringBuilder {
   throw RuntimeException()
  }

  @JvmStatic
  @HiddenFromObjC
  fun takesStringBuilder(i: Int, stringBuilder: StringBuilder) {
   throw RuntimeException()
  }

  @JvmStatic
  @HiddenFromObjC
  fun <T: StringBuilder> hasStringBuilderParameter(i: Int, stringBuilder: T) {
   throw RuntimeException()
  }

  @JvmStatic
  @HiddenFromObjC
  fun hasStringBuilderTypeVariable(i: Int, stringBuilder: Supplier<StringBuilder>) {
   throw RuntimeException()
  }

  @JvmStatic
  @HiddenFromObjC
  fun hasStringBuilderWildcard(i: Int, stringBuilder: Supplier<out StringBuilder>) {
   throw RuntimeException()
  }
 }

 fun interface Supplier<T> {
  fun get(): T
 }

 @HiddenFromObjC
 fun interface GenericWithStringBuilder<T: StringBuilder> {
  fun get(): T
 }

 @HiddenFromObjC
 class CustomAppendable: Appendable {
  @Throws(IOException::class)
  override fun append(csq: CharSequence?): Appendable {
   throw IOException()
  }

  @Throws(IOException::class)
  override fun append(csq: CharSequence?, start: Int, end: Int): Appendable {
   throw IOException()
  }

  @Throws(IOException::class)
  override fun append(c: Char): Appendable {
   throw IOException()
  }
 }

 @HiddenFromObjC
 class StringBuilderSupplier: Supplier<StringBuilder> {
  override fun get(): StringBuilder {
   throw AssertionError()
  }
 }

 @HiddenFromObjC
 class ConstructorWithStringBuilder {
  constructor(unusedStringBuilder: StringBuilder)
 }

 class ToStringOverride {
  override fun toString(): String {
   return super.toString()
  }
 }
}
