goog.module('jsasync.InterfaceWithAsyncDefaultMethod$impl');

const $Util = goog.require('nativebootstrap.Util$impl');

let Integer = goog.forwardDeclare('java.lang.Integer$impl');
let $Casts = goog.forwardDeclare('vmbootstrap.Casts$impl');

/**
 * @interface
 */
class InterfaceWithAsyncDefaultMethod {
 /** @abstract @nodts @return {!IThenable<!Integer>} */
 m_asyncCall__jsasync_IThenable() {}
 /** @nodts @return {!IThenable<!Integer>} */
 static async m_asyncCall__$default__jsasync_InterfaceWithAsyncDefaultMethod__jsasync_IThenable(/** !InterfaceWithAsyncDefaultMethod */ $thisArg) {
  InterfaceWithAsyncDefaultMethod.$clinit();
  return /**@type {!Promise<!Integer>}*/ (Promise.resolve(/**@type {!Integer}*/ ($Casts.$to(await (/**@type {!Promise<!Integer>}*/ (Promise.resolve(Integer.m_valueOf__int__java_lang_Integer(5)))), Integer))));
 }
 /** @nodts */
 static $clinit() {
  InterfaceWithAsyncDefaultMethod.$clinit = () =>{};
  InterfaceWithAsyncDefaultMethod.$loadModules();
 }
 
 static $markImplementor(/** Function */ ctor) {
  ctor.prototype.$implements__jsasync_InterfaceWithAsyncDefaultMethod = true;
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance != null && !!instance.$implements__jsasync_InterfaceWithAsyncDefaultMethod;
 }
 
 /** @nodts */
 static $loadModules() {
  Integer = goog.module.get('java.lang.Integer$impl');
  $Casts = goog.module.get('vmbootstrap.Casts$impl');
 }
}
InterfaceWithAsyncDefaultMethod.$markImplementor(/**@type {Function}*/ (InterfaceWithAsyncDefaultMethod));
$Util.$setClassMetadataForInterface(/**@type {Function}*/ (InterfaceWithAsyncDefaultMethod), 'jsasync.InterfaceWithAsyncDefaultMethod');

exports = InterfaceWithAsyncDefaultMethod;

//# sourceMappingURL=InterfaceWithAsyncDefaultMethod.js.map
