diff --git a/include/re_main.h b/include/re_main.h
new file mode 100644
index 0000000..cc9ac4b
--- /dev/null
+++ b/include/re_main.h
@@ -0,0 +1,69 @@
+/**
+ * @file re_main.h  Interface to main polling routine
+ *
+ * Copyright (C) 2010 Creytiv.com
+ */
+
+
+enum {
+#ifndef FD_READ
+	FD_READ   = 1<<0,
+#endif
+#ifndef FD_WRITE
+	FD_WRITE  = 1<<1,
+#endif
+	FD_EXCEPT = 1<<2
+};
+
+
+/**
+ * File descriptor event handler
+ *
+ * @param flags  Event flags
+ * @param arg    Handler argument
+ */
+typedef void (fd_h)(int flags, void *arg);
+
+/**
+ * Thread-safe signal handler
+ *
+ * @param sig Signal number
+ */
+typedef void (re_signal_h)(int sig);
+
+
+int   fd_listen(int fd, int flags, fd_h *fh, void *arg);
+void  fd_close(int fd);
+int   fd_setsize(int maxfds);
+void  fd_debug(void);
+
+int   libre_init(void);
+void  libre_close(void);
+
+int   re_main(re_signal_h *signalh);
+void  re_cancel(void);
+int   re_debug(struct re_printf *pf, void *unused);
+
+int  re_thread_init(void);
+void re_thread_close(void);
+void re_thread_enter(void);
+void re_thread_leave(void);
+
+void re_set_mutex(void *mutexp);
+
+
+/** Polling methods */
+enum poll_method {
+	METHOD_NULL = 0,
+	METHOD_POLL,
+	METHOD_SELECT,
+	METHOD_EPOLL,
+	METHOD_KQUEUE,
+	/* sep */
+	METHOD_MAX
+};
+
+int              poll_method_set(enum poll_method method);
+enum poll_method poll_method_best(void);
+const char      *poll_method_name(enum poll_method method);
+int poll_method_type(enum poll_method *method, const struct pl *name);
