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

class Interface extends core::Object {
  field core::int? _#Interface#implementedLateFieldDeclaredGetterSetter;
  synthetic constructor •() → self::Interface
    ;
  get implementedLateFieldDeclaredGetterSetter() → core::int;
  set implementedLateFieldDeclaredGetterSetter(core::int #t1) → void;
}
class Class extends core::Object implements self::Interface {
  synthetic constructor •() → self::Class
    ;
  get implementedLateFieldDeclaredGetterSetter() → core::int
    ;
  set implementedLateFieldDeclaredGetterSetter(core::int value) → void
    ;
}
static method main() → dynamic
  ;
