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

class Class extends core::Object {
  static field core::int? _#uninitializedNonFinalStaticField;
  static field core::bool _#uninitializedNonFinalStaticField#isSet;
  static field core::int? _#uninitializedFinalStaticField;
  static field core::bool _#uninitializedFinalStaticField#isSet;
  static field core::int? _#initializedNonFinalStaticField;
  static field core::bool _#initializedNonFinalStaticField#isSet;
  static field core::int? _#initializedFinalStaticField;
  static field core::bool _#initializedFinalStaticField#isSet;
  late field core::int uninitializedNonFinalInstanceField;
  field core::int? _#Class#uninitializedFinalInstanceField;
  field core::bool _#Class#uninitializedFinalInstanceField#isSet;
  field core::int? _#Class#initializedNonFinalInstanceField;
  field core::bool _#Class#initializedNonFinalInstanceField#isSet;
  field core::int? _#Class#initializedFinalInstanceField;
  field core::bool _#Class#initializedFinalInstanceField#isSet;
  synthetic constructor •() → self::Class
    ;
  static get uninitializedNonFinalStaticField() → core::int;
  static set uninitializedNonFinalStaticField(core::int #t1) → void;
  static get uninitializedFinalStaticField() → core::int;
  static set uninitializedFinalStaticField(core::int #t2) → void;
  static get initializedNonFinalStaticField() → core::int;
  static set initializedNonFinalStaticField(core::int #t3) → void;
  static get initializedFinalStaticField() → core::int;
  get uninitializedFinalInstanceField() → core::int;
  set uninitializedFinalInstanceField(core::int #t4) → void;
  get initializedNonFinalInstanceField() → core::int;
  set initializedNonFinalInstanceField(core::int #t5) → void;
  get initializedFinalInstanceField() → core::int;
}
static field core::int? _#uninitializedNonFinalTopLevelField;
static field core::bool _#uninitializedNonFinalTopLevelField#isSet;
static field core::int? _#uninitializedFinalTopLevelField;
static field core::bool _#uninitializedFinalTopLevelField#isSet;
static field core::int? _#initializedNonFinalTopLevelField;
static field core::bool _#initializedNonFinalTopLevelField#isSet;
static field core::int? _#initializedFinalTopLevelField;
static field core::bool _#initializedFinalTopLevelField#isSet;
static method main() → dynamic
  ;
static method method() → dynamic
  ;
static get uninitializedNonFinalTopLevelField() → core::int;
static set uninitializedNonFinalTopLevelField(core::int #t6) → void;
static get uninitializedFinalTopLevelField() → core::int;
static set uninitializedFinalTopLevelField(core::int #t7) → void;
static get initializedNonFinalTopLevelField() → core::int;
static set initializedNonFinalTopLevelField(core::int #t8) → void;
static get initializedFinalTopLevelField() → core::int;
