--- /dev/null
+#include <bindings.dsl.h>
+#include <apr_thread_cond.h>
+
+module Bindings.APR.Thread.Cond where
+#strict_import
+import Bindings.APR.ErrNo
+import Bindings.APR.Pools
+import Bindings.APR.Thread.Mutex
+import Bindings.APR.Time
+
+#if APR_HAS_THREADS
+
+# opaque_t apr_thread_cond_t
+
+# ccall apr_thread_cond_create , Ptr (Ptr <apr_thread_cond_t>) -> Ptr <apr_pool_t> -> IO <apr_status_t>
+# ccall apr_thread_cond_wait , Ptr <apr_thread_cond_t> -> Ptr <apr_thread_mutex_t> -> IO <apr_status_t>
+# ccall apr_thread_cond_timedwait, Ptr <apr_thread_cond_t> -> Ptr <apr_thread_mutex_t> -> <apr_interval_time_t> -> IO <apr_status_t>
+# ccall apr_thread_cond_signal , Ptr <apr_thread_cond_t> -> IO <apr_status_t>
+# ccall apr_thread_cond_broadcast, Ptr <apr_thread_cond_t> -> IO <apr_status_t>
+# ccall apr_thread_cond_destroy , Ptr <apr_thread_cond_t> -> IO <apr_status_t>
+
+# ccall apr_thread_cond_pool_get , Ptr <apr_thread_cond_t> -> IO (Ptr <apr_pool_t>)
+
+#endif