local record util enum loglevel "debug" "info" "warn" "error" end type logger = function ( loglevel, string, ...:any ) type sink = function ( string, loglevel, string, ...:any ) type simple_sink = function ( string, loglevel, string ) init : function ( string ) : logger make_logger : function ( string, loglevel ) : function ( string, ...:any ) reset : function () add_level_sink : function ( loglevel, sink ) add_simple_sink : function ( simple_sink, { loglevel } ) end return util