import { DetectionResults } from "./types/Detector"; declare global { interface Window { cardDetector?: CardDetector; } } declare class CardDetector { static IMG_SIZE: number; private model; private customModelPath; private model_name; private cdnPath; isFlippedSession: boolean; private statusCallback; private _modelState; private laplaceFilter; /** 5x5 Gaussian-like blur kernel for RGB images used in blur detection */ private blurKernel; private embedModel; private referenceEmbedding; constructor(modelPath?: string); setModelStatusCallback(callback: (state: string) => void): void; private setModelState; get modelState(): string; private load_model; private detectDistanceProblems; private warm_model; private tf_mem_log; private setupEmbeddingModel; private extractEmbedding; private setReferenceCard; private calculateCardSimilarity; private processCardSimilarity; cleanupEmbeddings(): void; disposeAll(): void; /** * Detects image blur by comparing embeddings of original vs artificially blurred image. * * @param imgTensor - Input image tensor [1, 224, 224, 3] * @returns Blur detection results or null if embeddings not available * * @description * - Blur score: 0.0 (very sharp) to 1.0 (very blurry) * - Sharp images change significantly when blurred → low score * - Blurry images barely change when blurred more → high score * - Current threshold: < 0.90 = sharp, ≥ 0.90 = blurry */ private detectBlur; private prepare_results; predict_image(canvas: HTMLCanvasElement, flipHorizontal: boolean, flipVertical: boolean): Promise; } declare class DetectorWrapper { static image_size: number; static get(): CardDetector; static init(modelPath?: string): void; static cleanUp(): void; } export declare class CardScanModel { static warm(modelPath?: string): void; } export default DetectorWrapper;