import { SharedValue } from '../commonTypes'; import { Descriptor } from '../hook/commonTypes'; const InnerNativeModule = global.__reanimatedModuleProxy; export class NativeReanimated { native: boolean; useOnlyV1: boolean; constructor(native = true) { this.native = native; this.useOnlyV1 = InnerNativeModule === null; } installCoreFunctions(valueSetter: (value: T) => void): void { return InnerNativeModule.installCoreFunctions(valueSetter); } makeShareable(value: T): T { return InnerNativeModule.makeShareable(value); } makeMutable(value: T): SharedValue { return InnerNativeModule.makeMutable(value); } makeRemote(object = {}): T { return InnerNativeModule.makeRemote(object); } startMapper( mapper: () => void, inputs: any[] = [], outputs: any[] = [], updater: () => void, viewDescriptors: Descriptor[] | SharedValue ): number { return InnerNativeModule.startMapper( mapper, inputs, outputs, updater, viewDescriptors ); } stopMapper(mapperId: number): void { return InnerNativeModule.stopMapper(mapperId); } registerEventHandler( eventHash: string, eventHandler: (event: T) => void ): string { return InnerNativeModule.registerEventHandler(eventHash, eventHandler); } unregisterEventHandler(id: string): void { return InnerNativeModule.unregisterEventHandler(id); } getViewProp( viewTag: string, propName: string, callback?: (result: T) => void ): Promise { return InnerNativeModule.getViewProp(viewTag, propName, callback); } }