import { Ref, ShallowRef } from 'vue'; import { Q as QrScannerOptions, a as QrResult, S as ScannerError, b as QrScanner, c as ScannerInternals } from './scanner-Cr2OWyoR.js'; /** * Vue adapter (`cam2qr/vue`): a composable that owns a QrScanner's lifecycle. * Vue is an optional peer dependency — this entry point is only bundled when * imported. Call inside setup() (or an effect scope) so teardown runs. */ interface UseQrScannerOptions extends QrScannerOptions { /** * Set false to keep the camera off (and release it). Default true. * Pass a Ref to toggle reactively. */ enabled?: boolean | Ref; /** * Suspend/resume decoding while keeping the camera stream warm (distinct * from `enabled`, which releases it — no black-flash or permission churn). * Pass a Ref to toggle reactively. `true` from the start comes up suspended, * even through the async camera-startup window. */ paused?: boolean | Ref; } interface UseQrScannerReturn { /** Bind to the