import type { BarcodeFormat } from 'barcode-detector'; import { type ReactNode } from 'react'; import type { IDetectedBarcode, IScannerClassNames, IScannerComponents, IScannerError, IScannerHandle, IScannerStyles, TrackFunction } from '../types'; export interface IScannerProps { /** Called when one or more barcodes are detected. */ onScan: (detectedCodes: IDetectedBarcode[]) => void; /** Called when the scanner can't start the camera or detection fails. */ onError?: (error: IScannerError) => void; /** Media track constraints applied to the camera stream. */ constraints?: MediaTrackConstraints; /** Barcode formats to detect. Defaults to all supported formats. */ formats?: BarcodeFormat[]; /** Pause the scanner and display a frozen frame of the last video frame. */ paused?: boolean; /** Custom content to render over the scanner. */ children?: ReactNode; /** Built-in UI components and tracker. Top-level `tracker` overrides `components.tracker`. */ components?: IScannerComponents; /** Custom tracker overlay function. Convenience alias for `components.tracker`. */ tracker?: TrackFunction; /** Inline CSS for the container and video. */ styles?: IScannerStyles; /** Class names for the container and video. */ classNames?: IScannerClassNames; /** Allow the same barcode to trigger `onScan` repeatedly. */ allowMultiple?: boolean; /** Minimum delay (ms) between `onScan` calls when `allowMultiple` is true. */ scanDelay?: number; /** Minimum delay (ms) between detection attempts. */ retryDelay?: number; /** Play a beep on a successful scan, or a custom sound URL/data URI. */ sound?: boolean | string; /** Max time (ms) to wait for the camera to start. Default 3000. */ startTimeoutMs?: number; /** Delay (ms) after `play()` before reading capabilities. Default 500. */ settleDelayMs?: number; } export declare const Scanner: import("react").ForwardRefExoticComponent>; //# sourceMappingURL=Scanner.d.ts.map