import './scannerNativeTypes.js'; import type { ScannerEngine } from './selectEngine.js'; import { type BarcodeScannerFormatProfile } from './scannerFormats.js'; export type ScannerStatus = 'idle' | 'starting' | 'running' | 'denied' | 'error'; export declare const SCANNER_DISTANCE_ASSIST_DELAY_MS = 1500; /** @deprecated Distance-zoom assist delay only — @zxing assist starts on frame 0 (v2.2). */ export declare const SCANNER_ZBAR_ZXING_ASSIST_DELAY_MS = 1500; export declare const SCANNER_DISTANCE_ZOOM_DELAY_MS = 1500; /** Minimum gap after a successful decode before another emit (G30 post-decode UX). */ export declare const SCANNER_POST_DECODE_COOLDOWN_MS = 600; export interface UseBarcodeScannerMessages { permissionDenied: string; noCamera: string; starting: string; runningNative: string; runningZxing: string; error: string; scannerOff: string; zbarBootstrapFailed?: string; runningZbar?: string; /** Shown when `degradedMode === true` (ZBar unavailable, @zxing/native running). */ runningDegraded?: string; insecureContext?: string; cameraInUse?: string; policyBlocked?: string; } export interface UseBarcodeScannerOptions { enabled: boolean; videoRef: React.RefObject; onDecode: (rawValue: string) => void; messages: UseBarcodeScannerMessages; formatProfile?: BarcodeScannerFormatProfile; onBackgroundStop?: () => void; sessionKey?: number; preAcquiredStreamRef?: React.MutableRefObject; } export interface UseBarcodeScannerReturn { status: ScannerStatus; engine: ScannerEngine | null; zxingAssistActive: boolean; /** True when ZBar WASM failed to boot and @zxing/native degraded path is active. */ degradedMode: boolean; errorMessage: string | null; } /** * Live camera barcode/QR decode — multi-engine parallel (ZBar + native + @zxing). */ export declare function useBarcodeScanner(options: UseBarcodeScannerOptions): UseBarcodeScannerReturn; //# sourceMappingURL=useBarcodeScanner.d.ts.map