declare function JSCheckScriptSyntax(ctx: interop.Pointer | interop.Reference, script: interop.Pointer | interop.Reference, sourceURL: interop.Pointer | interop.Reference, startingLineNumber: number, exception: interop.Pointer | interop.Reference>): boolean; declare function JSClassCreate(definition: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; interface JSClassDefinition { version: number; attributes: number; className: string; parentClass: interop.Pointer | interop.Reference; staticValues: interop.Pointer | interop.Reference; staticFunctions: interop.Pointer | interop.Reference; initialize: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference) => void>; finalize: interop.FunctionReference<(p1: interop.Pointer | interop.Reference) => void>; hasProperty: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference) => boolean>; getProperty: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>; setProperty: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: interop.Pointer | interop.Reference, p5: interop.Pointer | interop.Reference>) => boolean>; deleteProperty: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: interop.Pointer | interop.Reference>) => boolean>; getPropertyNames: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference) => void>; callAsFunction: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: number, p5: interop.Reference>, p6: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>; callAsConstructor: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: number, p4: interop.Reference>, p5: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>; hasInstance: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: interop.Pointer | interop.Reference>) => boolean>; convertToType: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: JSType, p4: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>; } declare var JSClassDefinition: interop.StructType; declare function JSClassRelease(jsClass: interop.Pointer | interop.Reference): void; declare function JSClassRetain(jsClass: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare class JSContext extends NSObject { static alloc(): JSContext; // inherited from NSObject static contextWithJSGlobalContextRef(jsGlobalContextRef: interop.Pointer | interop.Reference): JSContext; static currentArguments(): NSArray; static currentCallee(): JSValue; static currentContext(): JSContext; static currentThis(): JSValue; static new(): JSContext; // inherited from NSObject readonly JSGlobalContextRef: interop.Pointer | interop.Reference; exception: JSValue; exceptionHandler: (p1: JSContext, p2: JSValue) => void; readonly globalObject: JSValue; name: string; readonly virtualMachine: JSVirtualMachine; constructor(o: { virtualMachine: JSVirtualMachine; }); evaluateScript(script: string): JSValue; evaluateScriptWithSourceURL(script: string, sourceURL: NSURL): JSValue; initWithVirtualMachine(virtualMachine: JSVirtualMachine): this; objectForKeyedSubscript(key: any): JSValue; setObjectForKeyedSubscript(object: any, key: NSObject): void; } declare function JSContextGetGlobalContext(ctx: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSContextGetGlobalObject(ctx: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSContextGetGroup(ctx: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSContextGroupCreate(): interop.Pointer | interop.Reference; declare function JSContextGroupRelease(group: interop.Pointer | interop.Reference): void; declare function JSContextGroupRetain(group: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSEvaluateScript(ctx: interop.Pointer | interop.Reference, script: interop.Pointer | interop.Reference, thisObject: interop.Pointer | interop.Reference, sourceURL: interop.Pointer | interop.Reference, startingLineNumber: number, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; interface JSExport { } declare var JSExport: { prototype: JSExport; }; declare function JSGarbageCollect(ctx: interop.Pointer | interop.Reference): void; declare function JSGlobalContextCopyName(ctx: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSGlobalContextCreate(globalObjectClass: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSGlobalContextCreateInGroup(group: interop.Pointer | interop.Reference, globalObjectClass: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSGlobalContextRelease(ctx: interop.Pointer | interop.Reference): void; declare function JSGlobalContextRetain(ctx: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSGlobalContextSetName(ctx: interop.Pointer | interop.Reference, name: interop.Pointer | interop.Reference): void; declare class JSManagedValue extends NSObject { static alloc(): JSManagedValue; // inherited from NSObject static managedValueWithValue(value: JSValue): JSManagedValue; static managedValueWithValueAndOwner(value: JSValue, owner: any): JSManagedValue; static new(): JSManagedValue; // inherited from NSObject readonly value: JSValue; constructor(o: { value: JSValue; }); initWithValue(value: JSValue): this; } declare function JSObjectCallAsConstructor(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, argumentCount: number, _arguments: interop.Reference>, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectCallAsFunction(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, thisObject: interop.Pointer | interop.Reference, argumentCount: number, _arguments: interop.Reference>, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectCopyPropertyNames(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSObjectDeleteProperty(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, propertyName: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): boolean; declare function JSObjectGetArrayBufferByteLength(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): number; declare function JSObjectGetArrayBufferBytesPtr(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectGetPrivate(object: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSObjectGetProperty(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, propertyName: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectGetPropertyAtIndex(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, propertyIndex: number, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectGetPrototype(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSObjectGetTypedArrayBuffer(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectGetTypedArrayByteLength(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): number; declare function JSObjectGetTypedArrayByteOffset(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): number; declare function JSObjectGetTypedArrayBytesPtr(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectGetTypedArrayLength(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): number; declare function JSObjectHasProperty(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, propertyName: interop.Pointer | interop.Reference): boolean; declare function JSObjectIsConstructor(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference): boolean; declare function JSObjectIsFunction(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference): boolean; declare function JSObjectMake(ctx: interop.Pointer | interop.Reference, jsClass: interop.Pointer | interop.Reference, data: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSObjectMakeArray(ctx: interop.Pointer | interop.Reference, argumentCount: number, _arguments: interop.Reference>, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeArrayBufferWithBytesNoCopy(ctx: interop.Pointer | interop.Reference, bytes: interop.Pointer | interop.Reference, byteLength: number, bytesDeallocator: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference) => void>, deallocatorContext: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeConstructor(ctx: interop.Pointer | interop.Reference, jsClass: interop.Pointer | interop.Reference, callAsConstructor: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: number, p4: interop.Reference>, p5: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeDate(ctx: interop.Pointer | interop.Reference, argumentCount: number, _arguments: interop.Reference>, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeError(ctx: interop.Pointer | interop.Reference, argumentCount: number, _arguments: interop.Reference>, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeFunction(ctx: interop.Pointer | interop.Reference, name: interop.Pointer | interop.Reference, parameterCount: number, parameterNames: interop.Reference>, body: interop.Pointer | interop.Reference, sourceURL: interop.Pointer | interop.Reference, startingLineNumber: number, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeFunctionWithCallback(ctx: interop.Pointer | interop.Reference, name: interop.Pointer | interop.Reference, callAsFunction: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: number, p5: interop.Reference>, p6: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeRegExp(ctx: interop.Pointer | interop.Reference, argumentCount: number, _arguments: interop.Reference>, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeTypedArray(ctx: interop.Pointer | interop.Reference, arrayType: JSTypedArrayType, length: number, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeTypedArrayWithArrayBuffer(ctx: interop.Pointer | interop.Reference, arrayType: JSTypedArrayType, buffer: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeTypedArrayWithArrayBufferAndOffset(ctx: interop.Pointer | interop.Reference, arrayType: JSTypedArrayType, buffer: interop.Pointer | interop.Reference, byteOffset: number, length: number, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectMakeTypedArrayWithBytesNoCopy(ctx: interop.Pointer | interop.Reference, arrayType: JSTypedArrayType, bytes: interop.Pointer | interop.Reference, byteLength: number, bytesDeallocator: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference) => void>, deallocatorContext: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSObjectSetPrivate(object: interop.Pointer | interop.Reference, data: interop.Pointer | interop.Reference): boolean; declare function JSObjectSetProperty(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, propertyName: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, attributes: number, exception: interop.Pointer | interop.Reference>): void; declare function JSObjectSetPropertyAtIndex(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, propertyIndex: number, value: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): void; declare function JSObjectSetPrototype(ctx: interop.Pointer | interop.Reference, object: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): void; declare var JSPropertyDescriptorConfigurableKey: string; declare var JSPropertyDescriptorEnumerableKey: string; declare var JSPropertyDescriptorGetKey: string; declare var JSPropertyDescriptorSetKey: string; declare var JSPropertyDescriptorValueKey: string; declare var JSPropertyDescriptorWritableKey: string; declare function JSPropertyNameAccumulatorAddName(accumulator: interop.Pointer | interop.Reference, propertyName: interop.Pointer | interop.Reference): void; declare function JSPropertyNameArrayGetCount(array: interop.Pointer | interop.Reference): number; declare function JSPropertyNameArrayGetNameAtIndex(array: interop.Pointer | interop.Reference, index: number): interop.Pointer | interop.Reference; declare function JSPropertyNameArrayRelease(array: interop.Pointer | interop.Reference): void; declare function JSPropertyNameArrayRetain(array: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; interface JSStaticFunction { name: string; callAsFunction: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: number, p5: interop.Reference>, p6: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>; attributes: number; } declare var JSStaticFunction: interop.StructType; interface JSStaticValue { name: string; getProperty: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: interop.Pointer | interop.Reference>) => interop.Pointer | interop.Reference>; setProperty: interop.FunctionReference<(p1: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference, p3: interop.Pointer | interop.Reference, p4: interop.Pointer | interop.Reference, p5: interop.Pointer | interop.Reference>) => boolean>; attributes: number; } declare var JSStaticValue: interop.StructType; declare function JSStringCopyCFString(alloc: any, string: interop.Pointer | interop.Reference): string; declare function JSStringCreateWithCFString(string: string): interop.Pointer | interop.Reference; declare function JSStringCreateWithCharacters(chars: interop.Pointer | interop.Reference, numChars: number): interop.Pointer | interop.Reference; declare function JSStringCreateWithUTF8CString(string: string): interop.Pointer | interop.Reference; declare function JSStringGetCharactersPtr(string: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSStringGetLength(string: interop.Pointer | interop.Reference): number; declare function JSStringGetMaximumUTF8CStringSize(string: interop.Pointer | interop.Reference): number; declare function JSStringGetUTF8CString(string: interop.Pointer | interop.Reference, buffer: string, bufferSize: number): number; declare function JSStringIsEqual(a: interop.Pointer | interop.Reference, b: interop.Pointer | interop.Reference): boolean; declare function JSStringIsEqualToUTF8CString(a: interop.Pointer | interop.Reference, b: string): boolean; declare function JSStringRelease(string: interop.Pointer | interop.Reference): void; declare function JSStringRetain(string: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare const enum JSType { kJSTypeUndefined = 0, kJSTypeNull = 1, kJSTypeBoolean = 2, kJSTypeNumber = 3, kJSTypeString = 4, kJSTypeObject = 5 } declare const enum JSTypedArrayType { kJSTypedArrayTypeInt8Array = 0, kJSTypedArrayTypeInt16Array = 1, kJSTypedArrayTypeInt32Array = 2, kJSTypedArrayTypeUint8Array = 3, kJSTypedArrayTypeUint8ClampedArray = 4, kJSTypedArrayTypeUint16Array = 5, kJSTypedArrayTypeUint32Array = 6, kJSTypedArrayTypeFloat32Array = 7, kJSTypedArrayTypeFloat64Array = 8, kJSTypedArrayTypeArrayBuffer = 9, kJSTypedArrayTypeNone = 10 } declare class JSValue extends NSObject { static alloc(): JSValue; // inherited from NSObject static new(): JSValue; // inherited from NSObject static valueWithBoolInContext(value: boolean, context: JSContext): JSValue; static valueWithDoubleInContext(value: number, context: JSContext): JSValue; static valueWithInt32InContext(value: number, context: JSContext): JSValue; static valueWithJSValueRefInContext(value: interop.Pointer | interop.Reference, context: JSContext): JSValue; static valueWithNewArrayInContext(context: JSContext): JSValue; static valueWithNewErrorFromMessageInContext(message: string, context: JSContext): JSValue; static valueWithNewObjectInContext(context: JSContext): JSValue; static valueWithNewRegularExpressionFromPatternFlagsInContext(pattern: string, flags: string, context: JSContext): JSValue; static valueWithNullInContext(context: JSContext): JSValue; static valueWithObjectInContext(value: any, context: JSContext): JSValue; static valueWithPointInContext(point: CGPoint, context: JSContext): JSValue; static valueWithRangeInContext(range: NSRange, context: JSContext): JSValue; static valueWithRectInContext(rect: CGRect, context: JSContext): JSValue; static valueWithSizeInContext(size: CGSize, context: JSContext): JSValue; static valueWithUInt32InContext(value: number, context: JSContext): JSValue; static valueWithUndefinedInContext(context: JSContext): JSValue; readonly JSValueRef: interop.Pointer | interop.Reference; readonly context: JSContext; readonly isArray: boolean; readonly isBoolean: boolean; readonly isDate: boolean; readonly isNull: boolean; readonly isNumber: boolean; readonly isObject: boolean; readonly isString: boolean; readonly isUndefined: boolean; [index: number]: JSValue; callWithArguments(_arguments: NSArray): JSValue; constructWithArguments(_arguments: NSArray): JSValue; definePropertyDescriptor(property: string, descriptor: any): void; deleteProperty(property: string): boolean; hasProperty(property: string): boolean; invokeMethodWithArguments(method: string, _arguments: NSArray): JSValue; isEqualToObject(value: any): boolean; isEqualWithTypeCoercionToObject(value: any): boolean; isInstanceOf(value: any): boolean; objectAtIndexedSubscript(index: number): JSValue; objectForKeyedSubscript(key: any): JSValue; setObjectAtIndexedSubscript(object: any, index: number): void; setObjectForKeyedSubscript(object: any, key: NSObject): void; setValueAtIndex(value: any, index: number): void; setValueForProperty(value: any, property: string): void; toArray(): NSArray; toBool(): boolean; toDate(): Date; toDictionary(): NSDictionary; toDouble(): number; toInt32(): number; toNumber(): number; toObject(): any; toObjectOfClass(expectedClass: typeof NSObject): any; toPoint(): CGPoint; toRange(): NSRange; toRect(): CGRect; toSize(): CGSize; toString(): string; toUInt32(): number; valueAtIndex(index: number): JSValue; valueForProperty(property: string): JSValue; } declare function JSValueCreateJSONString(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, indent: number, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSValueGetType(ctx: interop.Pointer | interop.Reference, p2: interop.Pointer | interop.Reference): JSType; declare function JSValueGetTypedArrayType(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): JSTypedArrayType; declare function JSValueIsArray(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueIsBoolean(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueIsDate(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueIsEqual(ctx: interop.Pointer | interop.Reference, a: interop.Pointer | interop.Reference, b: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): boolean; declare function JSValueIsInstanceOfConstructor(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, constructor: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): boolean; declare function JSValueIsNull(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueIsNumber(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueIsObject(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueIsObjectOfClass(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, jsClass: interop.Pointer | interop.Reference): boolean; declare function JSValueIsStrictEqual(ctx: interop.Pointer | interop.Reference, a: interop.Pointer | interop.Reference, b: interop.Pointer | interop.Reference): boolean; declare function JSValueIsString(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueIsUndefined(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueMakeBoolean(ctx: interop.Pointer | interop.Reference, boolean: boolean): interop.Pointer | interop.Reference; declare function JSValueMakeFromJSONString(ctx: interop.Pointer | interop.Reference, string: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSValueMakeNull(ctx: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSValueMakeNumber(ctx: interop.Pointer | interop.Reference, number: number): interop.Pointer | interop.Reference; declare function JSValueMakeString(ctx: interop.Pointer | interop.Reference, string: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSValueMakeUndefined(ctx: interop.Pointer | interop.Reference): interop.Pointer | interop.Reference; declare function JSValueProtect(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): void; declare function JSValueToBoolean(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): boolean; declare function JSValueToNumber(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): number; declare function JSValueToObject(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSValueToStringCopy(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference, exception: interop.Pointer | interop.Reference>): interop.Pointer | interop.Reference; declare function JSValueUnprotect(ctx: interop.Pointer | interop.Reference, value: interop.Pointer | interop.Reference): void; declare class JSVirtualMachine extends NSObject { static alloc(): JSVirtualMachine; // inherited from NSObject static new(): JSVirtualMachine; // inherited from NSObject addManagedReferenceWithOwner(object: any, owner: any): void; removeManagedReferenceWithOwner(object: any, owner: any): void; } declare const kJSClassAttributeNoAutomaticPrototype: number; declare const kJSClassAttributeNone: number; declare var kJSClassDefinitionEmpty: JSClassDefinition; declare const kJSPropertyAttributeDontDelete: number; declare const kJSPropertyAttributeDontEnum: number; declare const kJSPropertyAttributeNone: number; declare const kJSPropertyAttributeReadOnly: number;