library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;

import "dart:async";

class Class extends core::Object {
  synthetic constructor •() → self::Class
    ;
}
static method returnDynamic() → dynamic
  ;
static method returnClass() → self::Class
  ;
static method returnFutureDynamic() → asy::Future<dynamic> async 
  ;
static method returnFutureClass() → asy::Future<self::Class> async 
  ;
static method error() → asy::Stream<FutureOr<self::Class>> async* 
  ;
static method stream() → asy::Stream<FutureOr<self::Class>> async* 
  ;
static method main() → dynamic async 
  ;
