// Generated from "importglobaljstypes/Number.java"
@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 importglobaljstypes

import javaemul.lang.*
import jsinterop.annotations.JsMethod
import jsinterop.annotations.JsPackage
import jsinterop.annotations.JsProperty
import jsinterop.annotations.JsType
import kotlin.Boolean
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmStatic

open class Number {
 open fun testJsDocForLiteralType(a: MyLiteralType?): MyLiteralType? {
  return a
 }

 companion object {
  @JvmStatic
  @JsMethod(name = "Number.isInteger", namespace = JsPackage.GLOBAL)
  external fun f(x: Double): Boolean

  @JvmStatic
  fun test(x: Double): Boolean {
   return Number.f(x)
  }

  @JvmStatic
  @JsMethod(name = "Array", namespace = JsPackage.GLOBAL)
  private external fun <T> createArray(): NativeArray<T>?

  @JvmStatic
  private fun getStringAt(index: Int): String? {
   return Number.createArray<String?>()!!.at(index)
  }

  @JvmStatic
  private fun getArrayLength(array: NativeArray<*>?): Int {
   return array!!.getLength()
  }
 }

 @JsType(name = "Array", namespace = JsPackage.GLOBAL, isNative = true)
 interface NativeArray<T> {
  @JsProperty
  fun getLength(): Int

  fun at(index: Int): T
 }

 @JsType(name = "Object", namespace = JsPackage.GLOBAL, isNative = true)
 interface MyLiteralType
}
