+#include "url.h"
+
+/* These global vars should be made static to retr.c and exported via
+ functions! */
+extern SUM_SIZE_INT total_downloaded_bytes;
+extern double total_download_time;
+extern FILE *output_stream;
+extern bool output_stream_regular;
+
+/* Flags for fd_read_body. */
+enum {
+ rb_read_exactly = 1,
+ rb_skip_startpos = 2,
+
+ /* Used by HTTP/HTTPS*/
+ rb_chunked_transfer_encoding = 4
+};
+
+int fd_read_body (int, FILE *, wgint, wgint, wgint *, wgint *, double *, int, FILE *);
+
+typedef const char *(*hunk_terminator_t) (const char *, const char *, int);
+
+char *fd_read_hunk (int, hunk_terminator_t, long, long);
+char *fd_read_line (int);
+
+uerr_t retrieve_url (struct url *, const char *, char **, char **,
+ const char *, int *, bool, struct iri *, bool);
+uerr_t retrieve_from_file (const char *, bool, int *);
+
+const char *retr_rate (wgint, double);
+double calc_rate (wgint, double, int *);
+void printwhat (int, int);