use libc::*;
use crate::simulation::event::*;
use crate::simulation::observable::observer::*;
pub type InputMessageQueue = c_void;
#[cfg(all(feature="cons_mode", not(feature="cons_core_mode")))]
#[cfg_attr(windows, link(name = "dvcompute_core_cons.dll"))]
#[cfg_attr(not(windows), link(name = "dvcompute_core_cons"))]
extern {
#[doc(hidden)]
pub fn create_extern_input_message_queue() -> *mut InputMessageQueue;
#[doc(hidden)]
pub fn delete_extern_input_message_queue(queue: *mut InputMessageQueue);
#[doc(hidden)]
pub fn subscribe_to_extern_input_messages(queue: *mut InputMessageQueue, observer: ObserverRepr) -> DisposableEventRepr;
}
#[cfg(all(feature="cons_mode", feature="cons_core_mode"))]
extern {
#[doc(hidden)]
pub fn create_extern_input_message_queue() -> *mut InputMessageQueue;
#[doc(hidden)]
pub fn delete_extern_input_message_queue(queue: *mut InputMessageQueue);
#[doc(hidden)]
pub fn subscribe_to_extern_input_messages(queue: *mut InputMessageQueue, observer: ObserverRepr) -> DisposableEventRepr;
}