import type { CodegenTypes, TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; export type BarcodeResult = { data: string; type: string; bounds?: { width: number; height: number; origin: { topLeft: { x: number; y: number }; bottomLeft: { x: number; y: number }; bottomRight: { x: number; y: number }; topRight: { x: number; y: number }; }; }; }; export type BarcodeScannedEvent = BarcodeResult[]; export interface Spec extends TurboModule { // Start scanning - results will be emitted via events startScanning(): Promise; // Stop scanning stopScanning(): Promise; // Enable flashlight/torch enableFlashlight(): Promise; // Disable flashlight/torch disableFlashlight(): Promise; // Release camera resources releaseCamera(): Promise; // Check if camera permission is granted hasCameraPermission(): Promise; // Request camera permission requestCameraPermission(): Promise; // Scan a static image scanImage(imageUri: string): Promise; readonly onBarcodeScanned: CodegenTypes.EventEmitter; } export default TurboModuleRegistry.getEnforcing('ReactNativeScanner');