::windows_targets::link!("chakra.dll" "system" fn JsAddRef(r#ref : *const ::core::ffi::c_void, count : *mut u32) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsBoolToBoolean(value : u8, booleanvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsBooleanToBool(value : *const ::core::ffi::c_void, boolvalue : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCallFunction(function : *const ::core::ffi::c_void, arguments : *const *const ::core::ffi::c_void, argumentcount : u16, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCollectGarbage(runtime : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsConstructObject(function : *const ::core::ffi::c_void, arguments : *const *const ::core::ffi::c_void, argumentcount : u16, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToBoolean(value : *const ::core::ffi::c_void, booleanvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToNumber(value : *const ::core::ffi::c_void, numbervalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToObject(value : *const ::core::ffi::c_void, object : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsConvertValueToString(value : *const ::core::ffi::c_void, stringvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateArray(length : u32, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsCreateContext(runtime : *const ::core::ffi::c_void, debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication64, newcontext : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsCreateContext(runtime : *const ::core::ffi::c_void, debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication32, newcontext : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateExternalObject(data : *const ::core::ffi::c_void, finalizecallback : JsFinalizeCallback, object : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateFunction(nativefunction : JsNativeFunction, callbackstate : *const ::core::ffi::c_void, function : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateObject(object : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateRangeError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateReferenceError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateRuntime(attributes : JsRuntimeAttributes, runtimeversion : JsRuntimeVersion, threadservice : JsThreadServiceCallback, runtime : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateSyntaxError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateTypeError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsCreateURIError(message : *const ::core::ffi::c_void, error : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsDefineProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, propertydescriptor : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsDeleteIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsDeleteProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, usestrictrules : u8, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsDisableRuntimeExecution(runtime : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsDisposeRuntime(runtime : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsDoubleToNumber(doublevalue : f64, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsEnableRuntimeExecution(runtime : *const ::core::ffi::c_void) -> JsErrorCode);
#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsEnumerateHeap(enumerator : *mut super::Diagnostics::Debug::ActiveScript:: IActiveScriptProfilerHeapEnum) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsEquals(object1 : *const ::core::ffi::c_void, object2 : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetAndClearException(exception : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetCurrentContext(currentcontext : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetExtensionAllowed(object : *const ::core::ffi::c_void, value : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetExternalData(object : *const ::core::ffi::c_void, externaldata : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetFalseValue(falsevalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetGlobalObject(globalobject : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetNullValue(nullvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetOwnPropertyDescriptor(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, propertydescriptor : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetOwnPropertyNames(object : *const ::core::ffi::c_void, propertynames : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetPropertyIdFromName(name : ::windows_sys::core::PCWSTR, propertyid : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetPropertyNameFromId(propertyid : *const ::core::ffi::c_void, name : *mut *mut u16) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetPrototype(object : *const ::core::ffi::c_void, prototypeobject : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetRuntime(context : *const ::core::ffi::c_void, runtime : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetRuntimeMemoryLimit(runtime : *const ::core::ffi::c_void, memorylimit : *mut usize) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetRuntimeMemoryUsage(runtime : *const ::core::ffi::c_void, memoryusage : *mut usize) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetStringLength(stringvalue : *const ::core::ffi::c_void, length : *mut i32) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetTrueValue(truevalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetUndefinedValue(undefinedvalue : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsGetValueType(value : *const ::core::ffi::c_void, r#type : *mut JsValueType) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsHasException(hasexception : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsHasExternalData(object : *const ::core::ffi::c_void, value : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsHasIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsHasProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, hasproperty : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsIdle(nextidletick : *mut u32) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsIntToNumber(intvalue : i32, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsIsEnumeratingHeap(isenumeratingheap : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsIsRuntimeExecutionDisabled(runtime : *const ::core::ffi::c_void, isdisabled : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsNumberToDouble(value : *const ::core::ffi::c_void, doublevalue : *mut f64) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsParseScript(script : ::windows_sys::core::PCWSTR, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsParseSerializedScript(script : ::windows_sys::core::PCWSTR, buffer : *const u8, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsPointerToString(stringvalue : ::windows_sys::core::PCWSTR, stringlength : usize, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsPreventExtension(object : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsRelease(r#ref : *const ::core::ffi::c_void, count : *mut u32) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsRunScript(script : ::windows_sys::core::PCWSTR, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsRunSerializedScript(script : ::windows_sys::core::PCWSTR, buffer : *const u8, sourcecontext : usize, sourceurl : ::windows_sys::core::PCWSTR, result : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSerializeScript(script : ::windows_sys::core::PCWSTR, buffer : *mut u8, buffersize : *mut u32) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetCurrentContext(context : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetException(exception : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetExternalData(object : *const ::core::ffi::c_void, externaldata : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetIndexedProperty(object : *const ::core::ffi::c_void, index : *const ::core::ffi::c_void, value : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetProperty(object : *const ::core::ffi::c_void, propertyid : *const ::core::ffi::c_void, value : *const ::core::ffi::c_void, usestrictrules : u8) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetPrototype(object : *const ::core::ffi::c_void, prototypeobject : *const ::core::ffi::c_void) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetRuntimeBeforeCollectCallback(runtime : *const ::core::ffi::c_void, callbackstate : *const ::core::ffi::c_void, beforecollectcallback : JsBeforeCollectCallback) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetRuntimeMemoryAllocationCallback(runtime : *const ::core::ffi::c_void, callbackstate : *const ::core::ffi::c_void, allocationcallback : JsMemoryAllocationCallback) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsSetRuntimeMemoryLimit(runtime : *const ::core::ffi::c_void, memorylimit : usize) -> JsErrorCode);
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsStartDebugging(debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication64) -> JsErrorCode);
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsStartDebugging(debugapplication : super::Diagnostics::Debug::ActiveScript:: IDebugApplication32) -> JsErrorCode);
#[cfg(feature = "Win32_System_Diagnostics_Debug_ActiveScript")]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_System_Diagnostics_Debug_ActiveScript\"`"] fn JsStartProfiling(callback : super::Diagnostics::Debug::ActiveScript:: IActiveScriptProfilerCallback, eventmask : super::Diagnostics::Debug::ActiveScript:: PROFILER_EVENT_MASK, context : u32) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsStopProfiling(reason : ::windows_sys::core::HRESULT) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsStrictEquals(object1 : *const ::core::ffi::c_void, object2 : *const ::core::ffi::c_void, result : *mut bool) -> JsErrorCode);
::windows_targets::link!("chakra.dll" "system" fn JsStringToPointer(value : *const ::core::ffi::c_void, stringvalue : *mut *mut u16, stringlength : *mut usize) -> JsErrorCode);
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn JsValueToVariant(object : *const ::core::ffi::c_void, variant : *mut super::Variant:: VARIANT) -> JsErrorCode);
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
::windows_targets::link!("chakra.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`"] fn JsVariantToValue(variant : *const super::Variant:: VARIANT, value : *mut *mut ::core::ffi::c_void) -> JsErrorCode);
pub const JS_SOURCE_CONTEXT_NONE: u64 = 18446744073709551615u64;
pub const JsArray: JsValueType = 8i32;
pub const JsBoolean: JsValueType = 4i32;
pub const JsError: JsValueType = 7i32;
pub const JsErrorAlreadyDebuggingContext: JsErrorCode = 65552u32;
pub const JsErrorAlreadyProfilingContext: JsErrorCode = 65553u32;
pub const JsErrorArgumentNotObject: JsErrorCode = 65548u32;
pub const JsErrorBadSerializedScript: JsErrorCode = 65544u32;
pub const JsErrorCannotDisableExecution: JsErrorCode = 65546u32;
pub const JsErrorCannotSerializeDebugScript: JsErrorCode = 65551u32;
pub const JsErrorCategoryEngine: JsErrorCode = 131072u32;
pub const JsErrorCategoryFatal: JsErrorCode = 262144u32;
pub const JsErrorCategoryScript: JsErrorCode = 196608u32;
pub const JsErrorCategoryUsage: JsErrorCode = 65536u32;
pub const JsErrorFatal: JsErrorCode = 262145u32;
pub const JsErrorHeapEnumInProgress: JsErrorCode = 65547u32;
pub const JsErrorIdleNotEnabled: JsErrorCode = 65554u32;
pub const JsErrorInDisabledState: JsErrorCode = 65545u32;
pub const JsErrorInExceptionState: JsErrorCode = 65540u32;
pub const JsErrorInProfileCallback: JsErrorCode = 65549u32;
pub const JsErrorInThreadServiceCallback: JsErrorCode = 65550u32;
pub const JsErrorInvalidArgument: JsErrorCode = 65537u32;
pub const JsErrorNoCurrentContext: JsErrorCode = 65539u32;
pub const JsErrorNotImplemented: JsErrorCode = 65541u32;
pub const JsErrorNullArgument: JsErrorCode = 65538u32;
pub const JsErrorOutOfMemory: JsErrorCode = 131073u32;
pub const JsErrorRuntimeInUse: JsErrorCode = 65543u32;
pub const JsErrorScriptCompile: JsErrorCode = 196610u32;
pub const JsErrorScriptEvalDisabled: JsErrorCode = 196612u32;
pub const JsErrorScriptException: JsErrorCode = 196609u32;
pub const JsErrorScriptTerminated: JsErrorCode = 196611u32;
pub const JsErrorWrongThread: JsErrorCode = 65542u32;
pub const JsFunction: JsValueType = 6i32;
pub const JsMemoryAllocate: JsMemoryEventType = 0i32;
pub const JsMemoryFailure: JsMemoryEventType = 2i32;
pub const JsMemoryFree: JsMemoryEventType = 1i32;
pub const JsNoError: JsErrorCode = 0u32;
pub const JsNull: JsValueType = 1i32;
pub const JsNumber: JsValueType = 2i32;
pub const JsObject: JsValueType = 5i32;
pub const JsRuntimeAttributeAllowScriptInterrupt: JsRuntimeAttributes = 2i32;
pub const JsRuntimeAttributeDisableBackgroundWork: JsRuntimeAttributes = 1i32;
pub const JsRuntimeAttributeDisableEval: JsRuntimeAttributes = 16i32;
pub const JsRuntimeAttributeDisableNativeCodeGeneration: JsRuntimeAttributes = 8i32;
pub const JsRuntimeAttributeEnableIdleProcessing: JsRuntimeAttributes = 4i32;
pub const JsRuntimeAttributeNone: JsRuntimeAttributes = 0i32;
pub const JsRuntimeVersion10: JsRuntimeVersion = 0i32;
pub const JsRuntimeVersion11: JsRuntimeVersion = 1i32;
pub const JsRuntimeVersionEdge: JsRuntimeVersion = -1i32;
pub const JsString: JsValueType = 3i32;
pub const JsUndefined: JsValueType = 0i32;
pub type JsErrorCode = u32;
pub type JsMemoryEventType = i32;
pub type JsRuntimeAttributes = i32;
pub type JsRuntimeVersion = i32;
pub type JsValueType = i32;
pub type JsBackgroundWorkItemCallback = ::core::option::Option<unsafe extern "system" fn(callbackstate: *const ::core::ffi::c_void) -> ()>;
pub type JsBeforeCollectCallback = ::core::option::Option<unsafe extern "system" fn(callbackstate: *const ::core::ffi::c_void) -> ()>;
pub type JsFinalizeCallback = ::core::option::Option<unsafe extern "system" fn(data: *const ::core::ffi::c_void) -> ()>;
pub type JsMemoryAllocationCallback = ::core::option::Option<unsafe extern "system" fn(callbackstate: *const ::core::ffi::c_void, allocationevent: JsMemoryEventType, allocationsize: usize) -> bool>;
pub type JsNativeFunction = ::core::option::Option<unsafe extern "system" fn(callee: *const ::core::ffi::c_void, isconstructcall: bool, arguments: *const *const ::core::ffi::c_void, argumentcount: u16, callbackstate: *const ::core::ffi::c_void) -> *mut ::core::ffi::c_void>;
pub type JsThreadServiceCallback = ::core::option::Option<unsafe extern "system" fn(callback: JsBackgroundWorkItemCallback, callbackstate: *const ::core::ffi::c_void) -> bool>;
