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

class Superclass extends core::Object {
  synthetic constructor •() → self::Superclass
    ;
  method foo({dynamic alpha, dynamic beta}) → dynamic
    ;
  method bar({dynamic beta, dynamic alpha}) → dynamic
    ;
  method namedCallback(({alpha: core::String, beta: core::int}) → dynamic callback) → dynamic
    ;
}
class Subclass extends self::Superclass {
  synthetic constructor •() → self::Subclass
    ;
  method foo({dynamic beta, dynamic alpha}) → dynamic
    ;
  method bar({dynamic alpha, dynamic beta}) → dynamic
    ;
  method namedCallback(({alpha: core::String, beta: core::int}) → dynamic callback) → dynamic
    ;
}
static method topLevelNamed(dynamic beta, dynamic alpha, {dynamic gamma, dynamic delta}) → dynamic
  ;
static method topLevelOptional(dynamic beta, dynamic alpha, [dynamic gamma, dynamic delta]) → dynamic
  ;
static method main() → dynamic
  ;
