You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.3 KiB

8 months ago
import { type ZXingReaderModule } from "zxing-wasm/reader";
import { type BarcodeFormat, type ReadResultBarcodeFormat } from "./utils.js";
export type { BarcodeFormat } from "./utils.js";
export interface BarcodeDetectorOptions {
formats?: BarcodeFormat[];
}
export interface Point2D {
x: number;
y: number;
}
export interface DetectedBarcode {
boundingBox: DOMRectReadOnly;
rawValue: string;
format: ReadResultBarcodeFormat;
cornerPoints: [Point2D, Point2D, Point2D, Point2D];
}
interface CustomEventMap {
load: CustomEvent<ZXingReaderModule>;
error: CustomEvent<unknown>;
}
type ChangeEventListener = <K extends keyof CustomEventMap>(type: K, callback: ((evt: CustomEventMap[K]) => void) | {
handleEvent(evt: CustomEventMap[K]): void;
} | null, options?: boolean | AddEventListenerOptions | undefined) => void;
export interface BarcodeDetector {
addEventListener: ChangeEventListener;
removeEventListener: ChangeEventListener;
}
export declare class BarcodeDetector extends EventTarget {
#private;
constructor(barcodeDectorOptions?: BarcodeDetectorOptions);
static getSupportedFormats(): Promise<readonly BarcodeFormat[]>;
detect(image: ImageBitmapSourceWebCodecs): Promise<DetectedBarcode[]>;
}
export { setZXingModuleOverrides } from "zxing-wasm/reader";