goog.module('intersectiontype.IntersectionTypeTest.MapEntry$impl');

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

let Getable = goog.forwardDeclare('intersectiontype.Getable$impl');
let IntersectionTypeTest = goog.forwardDeclare('intersectiontype.IntersectionTypeTest$impl');
let Setable = goog.forwardDeclare('intersectiontype.Setable$impl');
let $Casts = goog.forwardDeclare('vmbootstrap.Casts$impl');

/**
 * @template U
 */
class MapEntry extends j_l_Object {
 /** @protected @nodts */
 constructor() {
  super();
  /**@type {!IntersectionTypeTest<U>} @nodts*/
  this.$outer_this__intersectiontype_IntersectionTypeTest_MapEntry;
 }
 /** @nodts @template U @return {!MapEntry<U>} */
 static $create__intersectiontype_IntersectionTypeTest(/** !IntersectionTypeTest<U> */ $outer_this) {
  MapEntry.$clinit();
  let $instance = new MapEntry();
  $instance.$ctor__intersectiontype_IntersectionTypeTest_MapEntry__intersectiontype_IntersectionTypeTest__void($outer_this);
  return $instance;
 }
 /** @nodts */
 $ctor__intersectiontype_IntersectionTypeTest_MapEntry__intersectiontype_IntersectionTypeTest__void(/** !IntersectionTypeTest<U> */ $outer_this) {
  this.$outer_this__intersectiontype_IntersectionTypeTest_MapEntry = $outer_this;
  this.$ctor__java_lang_Object__void();
 }
 /** @nodts @template T @return {Getable<T>} */
 m_method__java_lang_Object__intersectiontype_Getable(/** * */ o) {
  return /**@type {Getable<T>}*/ ($Casts.$to($Casts.$to(o, /**@type {Function}*/ (Getable)), /**@type {Function}*/ (Setable)));
 }
 /** @nodts */
 static $clinit() {
  MapEntry.$clinit = () =>{};
  MapEntry.$loadModules();
  j_l_Object.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof MapEntry;
 }
 
 /** @nodts */
 static $loadModules() {
  Getable = goog.module.get('intersectiontype.Getable$impl');
  Setable = goog.module.get('intersectiontype.Setable$impl');
  $Casts = goog.module.get('vmbootstrap.Casts$impl');
 }
}
$Util.$setClassMetadata(MapEntry, 'intersectiontype.IntersectionTypeTest$MapEntry');

exports = MapEntry;

//# sourceMappingURL=IntersectionTypeTest$MapEntry.js.map
