new(config:T)
config:T
@:value(function() -> @:implicitReturn return { })startCallback:() ‑> Void = function() -> @:implicitReturn return { }
onStart(callback:() ‑> Void):Void
start():Void
stop():Void