import type { CameraOutput } from 'react-native-vision-camera';
import type { BarcodeScannerOutputOptions } from './specs/BarcodeScannerFactory.nitro';
/**
* Use a Barcode Scanner {@linkcode CameraOutput}.
*
* The Barcode Scanner {@linkcode CameraOutput} can be
* attached to a {@linkcode CameraSession} or {@linkcode Camera}
* component.
*
* @example
* Attach to a `` component:
* ```tsx
* const device = ...
* const scannerOutput = useBarcodeScannerOutput({
* barcodeFormats: ['all'],
* onBarcodeScanned(barcodes) {
* console.log(`Scanned ${barcodes.length} barcodes!`)
* },
* onError(error) {
* console.error(`Failed to scan barcodes!`, error)
* }
* })
*
* return (
*
* )
* ```
* @example
* Attach to a `CameraSession`:
* ```ts
* const device = ...
* const scannerOutput = useBarcodeScannerOutput({
* barcodeFormats: ['all'],
* onBarcodeScanned(barcodes) {
* console.log(`Scanned ${barcodes.length} barcodes!`)
* },
* onError(error) {
* console.error(`Failed to scan barcodes!`, error)
* }
* })
* const camera = useCamera({
* isActive: true,
* device: device,
* outputs: [scannerOutput]
* })
* ```
*/
export declare function useBarcodeScannerOutput({ barcodeFormats, outputResolution, onBarcodeScanned, onError, }: BarcodeScannerOutputOptions): CameraOutput;