-type path() :: binary().
-type type() :: #{'__type__' => 'erlang.io.File', pid => pid() | file:fd(), path => path()}.
-spec '__new__'(path()) -> type().
-spec make_temp(binary(), binary()) -> type().
-spec open(path()) -> type().
-spec open(path(), [atom()]) -> type().
-spec path(type()) -> binary().