goog.module('jsenum.Main$impl');

const j_l_Object = goog.require('java.lang.Object$impl');
const $Util = goog.require('nativebootstrap.Util$impl');

let Comparable = goog.forwardDeclare('java.lang.Comparable$impl');
let ArrayList = goog.forwardDeclare('java.util.ArrayList$impl');
let Arrays = goog.forwardDeclare('java.util.Arrays$impl');
let Optional = goog.forwardDeclare('java.util.Optional$impl');
let InternalPreconditions = goog.forwardDeclare('javaemul.internal.InternalPreconditions$impl');
let ComparableJsEnum = goog.forwardDeclare('jsenum.Main.ComparableJsEnum$impl');
let $Overlay = goog.forwardDeclare('jsenum.Main.ComparableJsEnum.$Overlay$impl');
let Consumer = goog.forwardDeclare('jsenum.Main.Consumer$impl');
let Foo = goog.forwardDeclare('jsenum.Main.Foo$impl');
let IntJsEnum = goog.forwardDeclare('jsenum.Main.IntJsEnum$impl');
let IntJsEnum_$Overlay = goog.forwardDeclare('jsenum.Main.IntJsEnum.$Overlay$impl');
let NativeStringEnum = goog.forwardDeclare('jsenum.Main.NonNullableStringJsEnum');
let SomeJsEnum = goog.forwardDeclare('jsenum.Main.SomeJsEnum$impl');
let SomeJsEnum_$Overlay = goog.forwardDeclare('jsenum.Main.SomeJsEnum.$Overlay$impl');
let StringJsEnum = goog.forwardDeclare('jsenum.Main.StringJsEnum$impl');
let StringJsEnum_$Overlay = goog.forwardDeclare('jsenum.Main.StringJsEnum.$Overlay$impl');
let Supplier = goog.forwardDeclare('jsenum.Main.Supplier$impl');
let TemplatedField = goog.forwardDeclare('jsenum.Main.TemplatedField$impl');
let $Equality = goog.forwardDeclare('nativebootstrap.Equality$impl');
let $Arrays = goog.forwardDeclare('vmbootstrap.Arrays$impl');
let $Comparables = goog.forwardDeclare('vmbootstrap.Comparables$impl');
let $Enums = goog.forwardDeclare('vmbootstrap.Enums$impl');
let $Enums_BoxedComparableLightEnum = goog.forwardDeclare('vmbootstrap.Enums.BoxedComparableLightEnum$impl');
let $Enums_BoxedLightEnum = goog.forwardDeclare('vmbootstrap.Enums.BoxedLightEnum$impl');
let $Objects = goog.forwardDeclare('vmbootstrap.Objects$impl');

class Main extends j_l_Object {
 /** @protected @nodts */
 constructor() {
  super();
 }
 /** @nodts @return {!Main} */
 static $create__() {
  Main.$clinit();
  let $instance = new Main();
  $instance.$ctor__jsenum_Main__void();
  return $instance;
 }
 /** @nodts */
 $ctor__jsenum_Main__void() {
  this.$ctor__java_lang_Object__void();
 }
 /** @nodts */
 static m_testJsEnumSwitch__void() {
  Main.$clinit();
  let comparableJsEnum = $Overlay.m_getValue__$devirt__jsenum_Main_ComparableJsEnum__int(ComparableJsEnum.ONE) == 1 ? ComparableJsEnum.TWO : /**@type {?ComparableJsEnum}*/ ($Enums.unbox(null, $Overlay));
  switch ((InternalPreconditions.m_checkNotNull__boolean__void(!$Equality.$same(comparableJsEnum, null)), comparableJsEnum)) {
   case ComparableJsEnum.TWO:
    break;
   default:
  }
  let /** (Comparable|boolean|number|string) */ comparable = /**@type {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ ($Enums.boxComparable(comparableJsEnum, $Overlay));
  comparableJsEnum = (/**@type {?ComparableJsEnum}*/ ($Enums.unbox(comparable, $Overlay)));
  let intJsEnum = IntJsEnum_$Overlay.m_getValue__$devirt__jsenum_Main_IntJsEnum__int(IntJsEnum.ELEVEN) == 10 ? IntJsEnum.ELEVEN : /**@type {?IntJsEnum}*/ ($Enums.unbox(null, IntJsEnum_$Overlay));
  switch ((InternalPreconditions.m_checkNotNull__boolean__void(!$Equality.$same(intJsEnum, null)), intJsEnum)) {
   case IntJsEnum.TWENTY:
    break;
   default:
  }
  let o = /**@type {$Enums_BoxedLightEnum<?IntJsEnum>}*/ ($Enums.box(intJsEnum, IntJsEnum_$Overlay));
  intJsEnum = (/**@type {?IntJsEnum}*/ ($Enums.unbox(o, IntJsEnum_$Overlay)));
  let equal = $Equality.$same(intJsEnum, IntJsEnum.TWENTY);
  let isInstance = !$Equality.$same(intJsEnum, null);
  isInstance = Comparable.$isInstance(/**@type {$Enums_BoxedLightEnum<?IntJsEnum>}*/ ($Enums.box(intJsEnum, IntJsEnum_$Overlay)));
  let stringJsEnum = $Equality.$same(StringJsEnum_$Overlay.m_getValue__$devirt__jsenum_Main_StringJsEnum__java_lang_String(StringJsEnum.ONE), '10') ? StringJsEnum.THREE : /**@type {?StringJsEnum}*/ ($Enums.unbox(null, StringJsEnum_$Overlay));
  switch ((InternalPreconditions.m_checkNotNull__boolean__void(!$Equality.$same(stringJsEnum, null)), stringJsEnum)) {
   case StringJsEnum.ONE:
    break;
   default:
  }
  $Comparables.m_compareTo__java_lang_Comparable__java_lang_Object__int(NativeStringEnum.ONE, NativeStringEnum.THREE);
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(NativeStringEnum.ONE, NativeStringEnum.THREE);
  let supplier = Supplier.$adapt(/**  @return {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ (() =>{
   return /**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay));
  }));
  let consummer = Consumer.$adapt((/** $Enums_BoxedComparableLightEnum<?ComparableJsEnum> */ e) =>{
   let e_1 = /**@type {?ComparableJsEnum}*/ ($Enums.unbox(e, $Overlay));
  });
  Main.m_acceptsJsFunctionSupplier__jsenum_Main_JsFunctionSuppiler__void(/**  @return {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ (() =>{
   return /**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay));
  }));
  Main.m_acceptsSupplierOfSupplier__jsenum_Main_Supplier__void(Supplier.$adapt(/**  @return {Supplier<$Enums_BoxedComparableLightEnum<?ComparableJsEnum>>}*/ (() =>{
   return Supplier.$adapt(/**  @return {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ (() =>{
    return /**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay));
   }));
  })));
  Main.m_acceptsJsFunctionParameterizedByJsEnum__jsenum_Main_SpecializedJsFunction__void(/**  @return {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ ((/** $Enums_BoxedComparableLightEnum<?ComparableJsEnum> */ e_2) =>{
   let e_3 = /**@type {?ComparableJsEnum}*/ ($Enums.unbox(e_2, $Overlay));
   return /**@type {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ ($Enums.boxComparable(e_3, $Overlay));
  }));
 }
 /** @nodts */
 static m_testExhaustiveJsEnumSwitchExpression__void() {
  let comparableJsEnum = $Overlay.m_getValue__$devirt__jsenum_Main_ComparableJsEnum__int(ComparableJsEnum.ONE) == 1 ? ComparableJsEnum.TWO : /**@type {?ComparableJsEnum}*/ ($Enums.unbox(null, $Overlay));
  let i = (() =>{
   switch ((InternalPreconditions.m_checkNotNull__boolean__void(!$Equality.$same(comparableJsEnum, null)), comparableJsEnum)) {
    case ComparableJsEnum.TWO:
     return 2;
    case ComparableJsEnum.ONE:
     return 1;
    case ComparableJsEnum.ZERO:
     return 0;
    default:
     InternalPreconditions.m_checkExhaustive__void();
   }
  })();
 }
 /** @nodts */
 static m_testJsEnumAutoboxingSpecialMethods__void() {
  let stringJsEnum = StringJsEnum.ONE;
  let nullStringJsEnum = /**@type {?StringJsEnum}*/ ($Enums.unbox(null, StringJsEnum_$Overlay));
  let jsEnum = ComparableJsEnum.ONE;
  let nullJsEnum = /**@type {?ComparableJsEnum}*/ ($Enums.unbox(null, $Overlay));
  let o = /**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay));
  $Enums.equals(StringJsEnum.ONE, StringJsEnum.THREE);
  $Enums.equals(StringJsEnum.ONE, stringJsEnum);
  $Enums.equals(StringJsEnum.ONE, nullStringJsEnum);
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(/**@type {$Enums_BoxedLightEnum<!StringJsEnum>}*/ ($Enums.box(StringJsEnum.ONE, StringJsEnum_$Overlay)), null);
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(/**@type {$Enums_BoxedLightEnum<!StringJsEnum>}*/ ($Enums.box(StringJsEnum.ONE, StringJsEnum_$Overlay)), o);
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(o, /**@type {$Enums_BoxedLightEnum<!StringJsEnum>}*/ ($Enums.box(StringJsEnum.THREE, StringJsEnum_$Overlay)));
  $Enums.compareTo(ComparableJsEnum.ONE, ComparableJsEnum.ZERO);
  $Comparables.m_compareTo__java_lang_Comparable__java_lang_Object__int(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay)), null);
  $Enums.equals(ComparableJsEnum.ONE, ComparableJsEnum.ZERO);
  $Enums.equals(ComparableJsEnum.ONE, jsEnum);
  $Enums.equals(ComparableJsEnum.ONE, nullJsEnum);
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay)), null);
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay)), o);
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(o, /**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ZERO, $Overlay)));
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(/**@type {$Enums_BoxedLightEnum<!StringJsEnum>}*/ ($Enums.box(StringJsEnum.ONE, StringJsEnum_$Overlay)), /**@type {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ ($Enums.boxComparable(jsEnum, $Overlay)));
  $Enums.equals(/**@type {?ComparableJsEnum}*/ ($Enums.unbox(Main.m_boxingPassthrough__java_lang_Object__java_lang_Object(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay))), $Overlay)), /**@type {?ComparableJsEnum}*/ ($Enums.unbox(Main.m_boxingPassthrough__java_lang_Object__java_lang_Object(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay))), $Overlay)));
  $Objects.m_equals__java_lang_Object__java_lang_Object__boolean(/**@type {$Enums_BoxedComparableLightEnum<?ComparableJsEnum>}*/ ($Enums.boxComparable(/**@type {?ComparableJsEnum}*/ ($Enums.unbox(Main.m_boxingPassthrough__java_lang_Object__java_lang_Object(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay))), $Overlay)), $Overlay)), /**@type {$Enums_BoxedLightEnum<?StringJsEnum>}*/ ($Enums.box(/**@type {?StringJsEnum}*/ ($Enums.unbox(Main.m_boxingPassthrough__java_lang_Object__java_lang_Object(/**@type {$Enums_BoxedLightEnum<!StringJsEnum>}*/ ($Enums.box(StringJsEnum.ONE, StringJsEnum_$Overlay))), StringJsEnum_$Overlay)), StringJsEnum_$Overlay)));
 }
 /** @nodts */
 static m_acceptsJsFunctionSupplier__jsenum_Main_JsFunctionSuppiler__void(/** ?function():$Enums_BoxedComparableLightEnum<?ComparableJsEnum> */ supplier) {}
 /** @nodts */
 static m_acceptsSupplierOfSupplier__jsenum_Main_Supplier__void(/** Supplier<Supplier<$Enums_BoxedComparableLightEnum<?ComparableJsEnum>>> */ supplier) {}
 /** @nodts */
 static m_acceptsJsFunctionParameterizedByJsEnum__jsenum_Main_SpecializedJsFunction__void(/** ?function($Enums_BoxedComparableLightEnum<?ComparableJsEnum>):$Enums_BoxedComparableLightEnum<?ComparableJsEnum> */ supplier) {}
 /** @nodts */
 static m_testReturnsAndParameters__void() {
  let returnedValue = Main.m_returnsJsEnum__jsenum_Main_ComparableJsEnum();
  let returnedNullValue = Main.m_returnsNullJsEnum__jsenum_Main_ComparableJsEnum();
  Main.m_takesJsEnum__jsenum_Main_ComparableJsEnum__void(ComparableJsEnum.ONE);
 }
 /** @nodts @return {?ComparableJsEnum} */
 static m_returnsJsEnum__jsenum_Main_ComparableJsEnum() {
  return ComparableJsEnum.ONE;
 }
 /** @nodts @return {?ComparableJsEnum} */
 static m_returnsNullJsEnum__jsenum_Main_ComparableJsEnum() {
  return /**@type {?ComparableJsEnum}*/ ($Enums.unbox(null, $Overlay));
 }
 /** @nodts */
 static m_takesJsEnum__jsenum_Main_ComparableJsEnum__void(/** ?ComparableJsEnum */ value) {}
 /** @nodts */
 static m_testBoxUnboxWithTypeInference__void() {
  let templatedField = /**@type {!TemplatedField<$Enums_BoxedComparableLightEnum<?ComparableJsEnum>>}*/ (TemplatedField.$create__java_lang_Object(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay))));
  let unboxed = /**@type {?ComparableJsEnum}*/ ($Enums.unbox(templatedField.m_getValue__java_lang_Object_$pp_jsenum(), $Overlay));
  unboxed = (/**@type {?ComparableJsEnum}*/ ($Enums.unbox(templatedField.f_value__jsenum_Main_TemplatedField, $Overlay)));
  templatedField.f_value__jsenum_Main_TemplatedField = (/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay)));
  Arrays.m_asList__arrayOf_java_lang_Object__java_util_List([/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay))]);
  $Enums.unbox(templatedField.m_getValue__java_lang_Object_$pp_jsenum(), $Overlay);
  let b = $Equality.$same(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay)), Main.m_boxingPassthrough__java_lang_Object__java_lang_Object(/**@type {$Enums_BoxedComparableLightEnum<!ComparableJsEnum>}*/ ($Enums.boxComparable(ComparableJsEnum.ONE, $Overlay))));
 }
 /** @nodts @template T @return {T} */
 static m_boxingPassthrough__java_lang_Object__java_lang_Object(/** T */ t) {
  return t;
 }
 /** @nodts */
 static m_boxingWithGenerics__void() {
  Main.$clinit();
  Foo.$create__java_util_Optional(/**@type {Optional<$Enums_BoxedLightEnum<?IntJsEnum>>}*/ (Optional.m_of__java_lang_Object__java_util_Optional(/**@type {$Enums_BoxedLightEnum<!IntJsEnum>}*/ ($Enums.box(IntJsEnum.MINUSONE, IntJsEnum_$Overlay)))));
 }
 /** @nodts @template T @return {T} */
 static m_varargsConsumer__arrayOf_java_lang_Object__java_lang_Object(/** Array<T> */ args) {
  return args[0];
 }
 /** @nodts */
 static m_testVarargs__void() {
  Main.m_varargsConsumer__arrayOf_java_lang_Object__java_lang_Object([/**@type {$Enums_BoxedComparableLightEnum<!SomeJsEnum>}*/ ($Enums.boxComparable(SomeJsEnum.A, SomeJsEnum_$Overlay)), /**@type {$Enums_BoxedComparableLightEnum<!SomeJsEnum>}*/ ($Enums.boxComparable(SomeJsEnum.A, SomeJsEnum_$Overlay))]);
  let consumer = Consumer.$adapt((/** $Enums_BoxedComparableLightEnum<?SomeJsEnum> */ arg0) =>{
   let arg0_1 = /**@type {?SomeJsEnum}*/ ($Enums.unbox(arg0, SomeJsEnum_$Overlay));
   Main.m_varargsConsumer__arrayOf_java_lang_Object__java_lang_Object([/**@type {$Enums_BoxedComparableLightEnum<?SomeJsEnum>}*/ ($Enums.boxComparable(arg0_1, SomeJsEnum_$Overlay))]);
  });
 }
 /** @nodts */
 static m_testNonNativeJsEnumArrays__void() {
  let arr = [IntJsEnum.MINUSONE, IntJsEnum.TWENTY];
  let b1 = $Equality.$same(arr[0], IntJsEnum.MINUSONE);
  let b2 = $Equality.$same(arr[1], IntJsEnum.TWENTY);
  let obj = /**@type {$Enums_BoxedLightEnum<?IntJsEnum>}*/ ($Enums.box(arr[0], IntJsEnum_$Overlay));
  let v = arr[0];
  let arr2 = new Array(2);
  $Arrays.$set(arr2, 0, IntJsEnum.MINUSONE);
  $Arrays.$set(arr2, 1, IntJsEnum.TWENTY);
  let nestedArr = [[IntJsEnum.MINUSONE]];
  $Arrays.$set(nestedArr, 0, [IntJsEnum.TWENTY]);
  let arrayWithNull = [/**@type {?IntJsEnum}*/ ($Enums.unbox(null, IntJsEnum_$Overlay))];
  $Arrays.$set(arrayWithNull, 0, /**@type {?IntJsEnum}*/ ($Enums.unbox(null, IntJsEnum_$Overlay)));
  let list = /**@type {!ArrayList<$Enums_BoxedLightEnum<?IntJsEnum>>}*/ (ArrayList.$create__());
  obj = list.m_toArray__arrayOf_java_lang_Object();
  Main.m_nonNativeJsEnumVarargs__arrayOf_jsenum_Main_IntJsEnum__void([IntJsEnum.MINUSONE, IntJsEnum.TWENTY]);
  Main.m_nonNativeJsEnumArrayVarargs__arrayOf_arrayOf_jsenum_Main_IntJsEnum__void([[IntJsEnum.MINUSONE], [IntJsEnum.TWENTY]]);
  Main.m_tVarargs__arrayOf_java_lang_Object__void([/**@type {$Enums_BoxedLightEnum<!IntJsEnum>}*/ ($Enums.box(IntJsEnum.MINUSONE, IntJsEnum_$Overlay)), /**@type {$Enums_BoxedLightEnum<!IntJsEnum>}*/ ($Enums.box(IntJsEnum.TWENTY, IntJsEnum_$Overlay))]);
 }
 /** @nodts */
 static m_nonNativeJsEnumVarargs__arrayOf_jsenum_Main_IntJsEnum__void(/** Array<?IntJsEnum> */ values) {
  let v = values[0];
 }
 /** @nodts */
 static m_nonNativeJsEnumArrayVarargs__arrayOf_arrayOf_jsenum_Main_IntJsEnum__void(/** Array<Array<?IntJsEnum>> */ values) {
  let v = values[0];
 }
 /** @nodts @template T */
 static m_tVarargs__arrayOf_java_lang_Object__void(/** Array<T> */ values) {
  let v = values[0];
 }
 /** @nodts */
 static m_testNonNativeStringJsEnumArrays__void() {
  let arr = [StringJsEnum.ONE, StringJsEnum.THREE];
  let b1 = $Equality.$same(arr[0], StringJsEnum.ONE);
  let obj = /**@type {$Enums_BoxedLightEnum<?StringJsEnum>}*/ ($Enums.box(arr[0], StringJsEnum_$Overlay));
  let v = arr[0];
  let arr2 = new Array(2);
  $Arrays.$set(arr2, 0, StringJsEnum.ONE);
  let nestedArr = [[StringJsEnum.ONE]];
  let arrayWithNull = [/**@type {?StringJsEnum}*/ ($Enums.unbox(null, StringJsEnum_$Overlay))];
  $Arrays.$set(arrayWithNull, 0, /**@type {?StringJsEnum}*/ ($Enums.unbox(null, StringJsEnum_$Overlay)));
 }
 /** @nodts */
 static m_testNativeJsEnumArrays__void() {
  let arr = [NativeStringEnum.ONE, NativeStringEnum.THREE];
  let b1 = $Equality.$same(arr[0], NativeStringEnum.ONE);
  let arr2 = new Array(2);
  $Arrays.$set(arr2, 0, NativeStringEnum.ONE);
  let nestedArr = [[NativeStringEnum.ONE]];
  $Arrays.$set(nestedArr, 0, [NativeStringEnum.THREE]);
  let arrayWithNull = [null];
  $Arrays.$set(arrayWithNull, 0, null);
 }
 /** @nodts */
 static $clinit() {
  Main.$clinit = () =>{};
  Main.$loadModules();
  j_l_Object.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof Main;
 }
 
 /** @nodts */
 static $loadModules() {
  Comparable = goog.module.get('java.lang.Comparable$impl');
  ArrayList = goog.module.get('java.util.ArrayList$impl');
  Arrays = goog.module.get('java.util.Arrays$impl');
  Optional = goog.module.get('java.util.Optional$impl');
  InternalPreconditions = goog.module.get('javaemul.internal.InternalPreconditions$impl');
  ComparableJsEnum = goog.module.get('jsenum.Main.ComparableJsEnum$impl');
  $Overlay = goog.module.get('jsenum.Main.ComparableJsEnum.$Overlay$impl');
  Consumer = goog.module.get('jsenum.Main.Consumer$impl');
  Foo = goog.module.get('jsenum.Main.Foo$impl');
  IntJsEnum = goog.module.get('jsenum.Main.IntJsEnum$impl');
  IntJsEnum_$Overlay = goog.module.get('jsenum.Main.IntJsEnum.$Overlay$impl');
  NativeStringEnum = goog.module.get('jsenum.Main.NonNullableStringJsEnum');
  SomeJsEnum = goog.module.get('jsenum.Main.SomeJsEnum$impl');
  SomeJsEnum_$Overlay = goog.module.get('jsenum.Main.SomeJsEnum.$Overlay$impl');
  StringJsEnum = goog.module.get('jsenum.Main.StringJsEnum$impl');
  StringJsEnum_$Overlay = goog.module.get('jsenum.Main.StringJsEnum.$Overlay$impl');
  Supplier = goog.module.get('jsenum.Main.Supplier$impl');
  TemplatedField = goog.module.get('jsenum.Main.TemplatedField$impl');
  $Equality = goog.module.get('nativebootstrap.Equality$impl');
  $Arrays = goog.module.get('vmbootstrap.Arrays$impl');
  $Comparables = goog.module.get('vmbootstrap.Comparables$impl');
  $Enums = goog.module.get('vmbootstrap.Enums$impl');
  $Objects = goog.module.get('vmbootstrap.Objects$impl');
 }
}
$Util.$setClassMetadata(Main, 'jsenum.Main');

exports = Main;

//# sourceMappingURL=Main.js.map
