///
import { type ZXingReaderOptions, type ReaderOptions, type ZXingWriterOptions, type WriterOptions, type ZXingReadResult, type ReadResult, type ZXingWriteResult, type ZXingBinarizer, type ZXingCharacterSet, type ZXingContentType, type ZXingEanAddOnSymbol, type ZXingTextMode, type ZXingVector } from "./bindings/index.js";
export type ZXingModuleType = "reader" | "writer" | "full";
interface ZXingBaseModule extends EmscriptenModule {
CharacterSet: ZXingCharacterSet;
}
/**
* @internal
*/
export interface ZXingReaderModule extends ZXingBaseModule {
Binarizer: ZXingBinarizer;
ContentType: ZXingContentType;
EanAddOnSymbol: ZXingEanAddOnSymbol;
TextMode: ZXingTextMode;
readBarcodesFromImage(bufferPtr: number, bufferLength: number, zxingReaderOptions: ZXingReaderOptions): ZXingVector;
readBarcodesFromPixmap(bufferPtr: number, imgWidth: number, imgHeight: number, zxingReaderOptions: ZXingReaderOptions): ZXingVector;
}
/**
* @internal
*/
export interface ZXingWriterModule extends ZXingBaseModule {
writeBarcodeToImage(text: string, zxingWriterOptions: ZXingWriterOptions): ZXingWriteResult;
}
/**
* @internal
*/
export interface ZXingFullModule extends ZXingReaderModule, ZXingWriterModule {
}
export type ZXingModule = T extends "reader" ? ZXingReaderModule : T extends "writer" ? ZXingWriterModule : T extends "full" ? ZXingFullModule : ZXingReaderModule | ZXingWriterModule | ZXingFullModule;
export type ZXingReaderModuleFactory = EmscriptenModuleFactory;
export type ZXingWriterModuleFactory = EmscriptenModuleFactory;
export type ZXingFullModuleFactory = EmscriptenModuleFactory;
export type ZXingModuleFactory = T extends "reader" ? ZXingReaderModuleFactory : T extends "writer" ? ZXingWriterModuleFactory : T extends "full" ? ZXingFullModuleFactory : ZXingReaderModuleFactory | ZXingWriterModuleFactory | ZXingFullModuleFactory;
export type ZXingModuleOverrides = Partial;
export declare function getZXingModuleWithFactory(zxingModuleFactory: ZXingModuleFactory, zxingModuleOverrides?: ZXingModuleOverrides): Promise>;
export declare function purgeZXingModule(): void;
export declare function setZXingModuleOverridesWithFactory(zxingModuleFactory: ZXingModuleFactory, zxingModuleOverrides: ZXingModuleOverrides): void;
export declare function readBarcodesFromImageFileWithFactory(zxingModuleFactory: ZXingModuleFactory, imageFile: Blob | File, readerOptions?: ReaderOptions): Promise;
export declare function readBarcodesFromImageDataWithFactory(zxingModuleFactory: ZXingModuleFactory, imageData: ImageData, readerOptions?: ReaderOptions): Promise;
export declare function writeBarcodeToImageFileWithFactory(zxingModuleFactory: ZXingModuleFactory, text: string, writerOptions?: WriterOptions): Promise;
export {};