-record(ftp_client, { data_stream :: gftp@stream:data_stream(), mode :: gftp@mode:mode(), nat_workaround :: boolean(), welcome_message :: gleam@option:option(binary()), passive_stream_builder :: fun((binary(), integer()) -> {ok, gftp@stream:data_stream()} | {error, gftp@result:ftp_error()}), tls_options :: gleam@option:option(kafein:wrap_options()), data_timeout :: integer() }).