import { NativeModule, requireNativeModule } from "expo"; import { ExpoZebraRfidModuleEvents } from "./ExpoZebraRfid.types"; export const DEVICE_CONNECTED = "CONNECTED"; export const DEVICE_DISCONNECTED = "DISCONNECTED"; export type DeviceTransport = "BLUETOOTH" | "USB"; export interface Device { id: string; name: string; address: string; serialNumber: string; transport: DeviceTransport; version: string | null; isConnected: boolean; } export interface NativeDevice extends Omit { status: string; } declare class ExpoZebraRfidModule extends NativeModule { isSDKInitialized(): boolean; getSDKVersion(): string; hasRequiredPermissions(): boolean; requestPermissions(): Promise; getAvailableDevices(): Promise; connectToDevice(deviceId: string): Promise; disconnectFromDevice(deviceId: string): Promise; isConnectedToDevice(deviceId: string): boolean; getConnectedDevices(): NativeDevice[]; // triggerScan(deviceId: string): Promise; // startRfidInventory(deviceId: string): Promise; // stopRfidInventory(deviceId: string): Promise; // readRfidTag(deviceId: string, tagId: string): Promise; // writeRfidTag( // deviceId: string, // tagId: string, // data: string // ): Promise; } // This call loads the native module object from the JSI. export default requireNativeModule("ExpoZebraRfid");