-type state() :: #{reader => 'erlang.io.IReader':type(), buffer => binary(), at_line_start => boolean(), at_line_start_prev => boolean()}.
-type type() :: #{'__type__' => 'erlang.io.PushbackReader', pid => pid()}.
-spec '__new__'('erlang.io.IReader':type()) -> type().
-spec at_line_start('erlang.io.IReader':type()) -> type().
-spec init('erlang.io.IReader':type()) -> no_return().
-spec loop(state()) -> ok.
-spec skip(state() | {cont, integer(), state()}, term(), integer()) -> {more, {cont, integer(), binary()}} | {done, integer(), binary()}.
-spec start_link('erlang.io.IReader':type()) -> pid().