import { NativeModule } from 'expo'; import { requireNativeModule } from 'expo-modules-core'; import { NativeDevice } from './ReactNativeUsb.types'; type DeviceEvents = { onDeviceConnect: (device: NativeDevice | null) => void; onDeviceDisconnect: (device: NativeDevice | null) => void; }; declare class ReactNativeUsbModuleDeclaration extends NativeModule { open: (deviceName: string) => Promise; reset: (deviceName: string) => Promise; close: (deviceName: string) => Promise; claimInterface: (deviceName: string, interfaceNumber: number) => Promise; releaseInterface: (deviceName: string, interfaceNumber: number) => Promise; transferIn: (deviceName: string, endpointNumber: number, length: number) => Promise; transferOut: (deviceName: string, endpointNumber: number, data: Uint8Array) => Promise; setPriorityMode: (isInPriorityMode: boolean) => void; } // It loads the native module object from the JSI or falls back to // the bridge module (from NativeModulesProxy) if the remote debugger is on. export const ReactNativeUsbModule = requireNativeModule('ReactNativeUsb');