goog.module('intrinsics.Foo$impl');

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

let Iterable = goog.forwardDeclare('java.lang.Iterable$impl');
let Iterator = goog.forwardDeclare('java.util.Iterator$impl');
let Spliterator = goog.forwardDeclare('java.util.Spliterator$impl');
let Consumer = goog.forwardDeclare('java.util.function.Consumer$impl');
let Predicate = goog.forwardDeclare('java.util.function.Predicate$impl');
let Stream = goog.forwardDeclare('java.util.stream.Stream$impl');

/**
 * @abstract
 * @template T
 * @implements {Collection<T>}
 */
class Foo extends j_l_Object {
 /** @protected @nodts */
 constructor() {
  super();
 }
 /** @nodts */
 $ctor__intrinsics_Foo__void() {
  this.$ctor__java_lang_Object__void();
 }
 /** @abstract @nodts @return {number} */
 m_getSize__int() {}
 /** @final @override @return {number} */
 size() {
  return this.m_getSize__int();
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} */
 m_forEach__java_util_function_Consumer__void(/** Consumer<?> */ arg0) {
  Iterable.m_forEach__$default__java_lang_Iterable__java_util_function_Consumer__void(this, arg0);
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {!Spliterator<T>} */
 m_spliterator__java_util_Spliterator() {
  return /**@type {!Spliterator<T>}*/ (Collection.m_spliterator__$default__java_util_Collection__java_util_Spliterator(this));
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {!Stream<T>} */
 m_parallelStream__java_util_stream_Stream() {
  return /**@type {!Stream<T>}*/ (Collection.m_parallelStream__$default__java_util_Collection__java_util_stream_Stream(this));
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {boolean} */
 m_removeIf__java_util_function_Predicate__boolean(/** !Predicate<?> */ arg0) {
  return Collection.m_removeIf__$default__java_util_Collection__java_util_function_Predicate__boolean(this, arg0);
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {!Stream<T>} */
 m_stream__java_util_stream_Stream() {
  return /**@type {!Stream<T>}*/ (Collection.m_stream__$default__java_util_Collection__java_util_stream_Stream(this));
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @return {Array<*>} */
 m_toArray__arrayOf_java_lang_Object() {
  return Collection.m_toArray__$default__java_util_Collection__arrayOf_java_lang_Object(this);
 }
 //Default method forwarding stub.
 /** @override @nodts @suppress{visibility} @template T_1 @return {Array<T_1>} */
 m_toArray__arrayOf_java_lang_Object__arrayOf_java_lang_Object(/** Array<T_1> */ arg0) {
  return Collection.m_toArray__$default__java_util_Collection__arrayOf_java_lang_Object__arrayOf_java_lang_Object(this, arg0);
 }
 //Default method forwarding stub.
 /** @override @suppress{visibility} @return {Array<T>} */
 toArray() {
  return Collection.m__private_jsToArray____$default__java_util_Collection__arrayOf_java_lang_Object(this);
 }
 /** @nodts */
 static $clinit() {
  Foo.$clinit = () =>{};
  Foo.$loadModules();
  j_l_Object.$clinit();
  Collection.$clinit();
 }
 /** @nodts @return {boolean} */
 static $isInstance(/** ? */ instance) {
  return instance instanceof Foo;
 }
 /** @abstract @override @nodts @suppress{visibility} @return {!Iterator<?>} */
 m_iterator__java_util_Iterator() {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 add(/** T */ arg0) {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 addAll(/** Collection<?> */ arg0) {}
 /** @abstract @override @suppress{visibility} */
 clear() {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 contains(/** * */ arg0) {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 containsAll(/** Collection<?> */ arg0) {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 isEmpty() {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 remove(/** * */ arg0) {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 removeAll(/** Collection<?> */ arg0) {}
 /** @abstract @override @suppress{visibility} @return {boolean} */
 retainAll(/** Collection<?> */ arg0) {}
 
 /** @nodts */
 static $loadModules() {
  Iterable = goog.module.get('java.lang.Iterable$impl');
 }
}
Collection.$markImplementor(Foo);
$Util.$setClassMetadata(Foo, 'intrinsics.Foo');

exports = Foo;

//# sourceMappingURL=Foo.js.map
