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

import "dart:io" as a;
import "dart:io" as b;
import "org-dartlang-testcase:///conditional_import.dart" as c;

class HttpRequest extends core::Object {
  synthetic constructor •() → self::HttpRequest
    ;
}
static method testA(_ht::HttpRequest request) → dynamic
  ;
static method testB(_ht::HttpRequest request) → dynamic
  ;
static method testC(self::HttpRequest request) → dynamic
  ;
static method main() → void
  ;
static method expect(dynamic expected, dynamic actual) → dynamic
  ;
