internal static extern void wrenSetSlotHandle(WrenVmSafeHandle vm, int slot, WrenHandleSafeHandle handle);
internal static extern InterpretResult wrenCall(WrenVmSafeHandle vm, WrenHandleSafeHandle method);
internal static extern void wrenEnsureSlots(WrenVmSafeHandle vm, int numSlots);
internal static extern void wrenSetUserData(WrenVmSafeHandle vm, IntPtr userData /* void* */);
internal static extern InterpretResult wrenInterpret(WrenVmSafeHandle vm, [MarshalAs(UnmanagedType.LPStr)] string module, [MarshalAs(UnmanagedType.LPStr)] string source);
internal static extern void wrenInsertInList(WrenVmSafeHandle vm, int listSlot, int index, int elementSlot);
internal static extern void wrenAbortFiber(WrenVmSafeHandle vm, int slot);
internal static extern IntPtr wrenGetSlotString(WrenVmSafeHandle vm, int slot);
internal static extern WrenHandleSafeHandle wrenGetSlotHandle(WrenVmSafeHandle vm, int slot);
internal static extern double wrenGetSlotDouble(WrenVmSafeHandle vm, int slot);
internal static extern IntPtr wrenGetSlotForeign(WrenVmSafeHandle vm, int slot); // void*
internal static extern IntPtr wrenGetSlotBytes(WrenVmSafeHandle vm, int slot, ref int length);
internal static extern bool wrenGetSlotBool(WrenVmSafeHandle vm, int slot);
internal static extern ValueType wrenGetSlotType(WrenVmSafeHandle vm, int slot);
internal static extern int wrenGetListCount(WrenVmSafeHandle vm, int slot);
internal static extern void wrenSetSlotBool(WrenVmSafeHandle vm, int slot, [MarshalAs(UnmanagedType.U1)] bool value);
internal static extern void wrenGetListElement(WrenVmSafeHandle vm, int listSlot, int index, int elementSlot);
internal static extern void wrenSetSlotBytes(WrenVmSafeHandle vm, int slot, IntPtr bytes, uint length);
internal static extern void wrenGetVariable(WrenVmSafeHandle vm, [MarshalAs(UnmanagedType.LPStr)] string module, [MarshalAs(UnmanagedType.LPStr)] string name, int slot);
internal static extern void wrenSetSlotDouble(WrenVmSafeHandle vm, int slot, double value);
internal static extern IntPtr wrenGetUserData(WrenVmSafeHandle vm); // void*
internal static extern IntPtr wrenSetSlotNewForeign(WrenVmSafeHandle vm, int slot, int classSlot, uint size); // void*
internal static extern void wrenCollectGarbage(WrenVmSafeHandle vm);
internal static extern void wrenSetSlotNull(WrenVmSafeHandle vm, int slot);
internal static extern WrenHandleSafeHandle wrenMakeCallHandle(WrenVmSafeHandle vm, [MarshalAs(UnmanagedType.LPStr)] string signature);
internal static extern void wrenSetSlotString(WrenVmSafeHandle vm, int slot, [MarshalAs(UnmanagedType.LPStr)] string text);
internal static extern void wrenReleaseHandle(WrenVmSafeHandle vm, IntPtr handle);
internal static extern int wrenGetSlotCount(WrenVmSafeHandle vm);