export declare const LF_SEARCH_LOOSE = 1; export declare const LF_SEARCH_SORT_AND_UNIQUIFY = 2; export declare const LF_MODIFY_TCA = 1; export declare const LF_MODIFY_VIGNETTING = 2; export declare const LF_MODIFY_DISTORTION = 8; export declare const LF_MODIFY_GEOMETRY = 16; export declare const LF_MODIFY_SCALE = 32; export declare const LF_MODIFY_PERSPECTIVE = 64; export interface LensfunModule { cwrap: (ident: string, returnType: string | null, argTypes: string[]) => (...args: unknown[]) => unknown; UTF8ToString: (ptr: number) => string; _malloc: (size: number) => number; _free: (ptr: number) => void; HEAPF32: Float32Array; } export interface LensfunInitOptions { moduleFactory?: (options?: Record) => Promise; moduleJsUrl?: string; wasmUrl?: string; dataUrl?: string; locateFile?: (path: string, prefix: string) => string; dbPath?: string; autoInitDb?: boolean; } export interface LensMatch { handle: number; maker: string; model: string; score: number; minFocal: number; maxFocal: number; minAperture: number; maxAperture: number; cropFactor: number; } export interface CameraMatch { maker: string; model: string; variant: string; mount: string; cropFactor: number; score: number; } export interface SearchLensesInput { lensMaker?: string; lensModel: string; cameraMaker?: string; cameraModel?: string; searchFlags?: number; } export interface SearchCamerasInput { maker?: string; model?: string; searchFlags?: number; } export interface CorrectionInput { lensHandle: number; width: number; height: number; focal: number; crop: number; step?: number; reverse?: boolean; includeTca?: boolean; includeVignetting?: boolean; aperture?: number; distance?: number; } export interface CorrectionMaps { gridWidth: number; gridHeight: number; step: number; geometry: Float32Array; tca?: Float32Array; vignetting?: Float32Array; } type CFn = (...args: unknown[]) => unknown; interface NativeFns { init: CFn; dispose: CFn; findLensesJson: CFn; findCamerasJson: CFn; availableMods: CFn; buildGeometryMap: CFn; buildTcaMap: CFn; buildVignettingMap: CFn; freePtr: CFn; } export declare class LensfunClient { private readonly module; private readonly fns; private disposed; constructor(module: LensfunModule, fns: NativeFns); dispose(): void; searchLenses(input: SearchLensesInput): LensMatch[]; searchCameras(input: SearchCamerasInput): CameraMatch[]; getAvailableModifications(lensHandle: number, crop: number): number; buildCorrectionMaps(input: CorrectionInput): CorrectionMaps; private runFloatMap; private ensureAlive; } export declare function createLensfun(options?: LensfunInitOptions): Promise; export {}; //# sourceMappingURL=index.d.ts.map