import { FILTERS } from "./lib/scan-processor"; import { ACCEPTED_LANGUAGES } from "./lib/i18n"; import { ACTIONS, SOURCES } from "./configuration"; type PostProcessingAction = (typeof ACTIONS)[number]; type MultiPageFormat = "pdf" | "none"; type PDFPageSize = "fit" | "a4" | "letter"; type Filter = (typeof FILTERS)[number]; type Language = (typeof ACCEPTED_LANGUAGES)[number]; type Source = (typeof SOURCES)[number]; interface Configuration { // Internal options showFps?: boolean; // Publicly documented options source?: Source; sourceImage?: Blob; multiPage?: boolean; multiPageFormat?: MultiPageFormat; defaultFilter?: Filter; availableFilters?: Filter[]; jpegQuality?: number; postProcessingActions?: PostProcessingAction[]; outputOriginalImage?: boolean; foregroundColor?: string; backgroundColor?: string; highlightColor?: string; language?: Language; // PDF generation options pdfTitle?: string; pdfPageSize?: PDFPageSize; } type Image = { data: Blob; type: "image/jpeg"; }; type Scan = { enhancedImage: Image; originalImage?: Image; }; type ScanResult = { scans: Scan[]; multiPageDocument?: { data: Blob; type: "application/pdf"; }; }; export function setLicenseKey(licenseKey: string): Promise; export function scanDocument(configuration: Configuration): Promise; export function scanWithConfiguration(configuration: Configuration): Promise; export function generatePDFFromImages(jpegs: Blob[], pdfPageSize?: PDFPageSize, title?: string): Promise;